Full Code of pop-os/cosmic-files for AI

master 750c92c8412a cached
152 files
1.4 MB
338.3k tokens
808 symbols
1 requests
Download .txt
Showing preview only (1,591K chars total). Download the full file or copy to clipboard to get everything.
Repository: pop-os/cosmic-files
Branch: master
Commit: 750c92c8412a
Files: 152
Total size: 1.4 MB

Directory structure:
gitextract_2jlip0v_/

├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── ci.yml
│       └── validate-desktop-files.yml
├── .gitignore
├── .zed/
│   └── settings.json
├── Cargo.toml
├── LICENSE
├── README.md
├── TESTING.md
├── build.rs
├── cosmic-files-applet/
│   ├── Cargo.toml
│   └── src/
│       ├── file_manager.rs
│       └── main.rs
├── debian/
│   ├── changelog
│   ├── control
│   ├── copyright
│   ├── rules
│   └── source/
│       ├── format
│       └── options
├── examples/
│   ├── copy.rs
│   ├── desktop.rs
│   ├── dialog.rs
│   ├── gio-list.rs
│   ├── gio-mount.rs
│   └── gvfs.rs
├── i18n/
│   ├── af/
│   │   └── cosmic_files.ftl
│   ├── ar/
│   │   └── cosmic_files.ftl
│   ├── be/
│   │   └── cosmic_files.ftl
│   ├── bg/
│   │   └── cosmic_files.ftl
│   ├── bn/
│   │   └── cosmic_files.ftl
│   ├── ca/
│   │   └── cosmic_files.ftl
│   ├── cs/
│   │   └── cosmic_files.ftl
│   ├── da/
│   │   └── cosmic_files.ftl
│   ├── de/
│   │   └── cosmic_files.ftl
│   ├── el/
│   │   └── cosmic_files.ftl
│   ├── en/
│   │   └── cosmic_files.ftl
│   ├── en-GB/
│   │   └── cosmic_files.ftl
│   ├── eo/
│   │   └── cosmic_files.ftl
│   ├── es/
│   │   └── cosmic_files.ftl
│   ├── es-419/
│   │   └── cosmic_files.ftl
│   ├── es-MX/
│   │   └── cosmic_files.ftl
│   ├── et/
│   │   └── cosmic_files.ftl
│   ├── eu/
│   │   └── cosmic_files.ftl
│   ├── fa/
│   │   └── cosmic_files.ftl
│   ├── fi/
│   │   └── cosmic_files.ftl
│   ├── fr/
│   │   └── cosmic_files.ftl
│   ├── fy/
│   │   └── cosmic_files.ftl
│   ├── ga/
│   │   └── cosmic_files.ftl
│   ├── gd/
│   │   └── cosmic_files.ftl
│   ├── gu/
│   │   └── cosmic_files.ftl
│   ├── he/
│   │   └── cosmic_files.ftl
│   ├── hi/
│   │   └── cosmic_files.ftl
│   ├── hr/
│   │   └── cosmic_files.ftl
│   ├── hu/
│   │   └── cosmic_files.ftl
│   ├── id/
│   │   └── cosmic_files.ftl
│   ├── ie/
│   │   └── cosmic_files.ftl
│   ├── is/
│   │   └── cosmic_files.ftl
│   ├── it/
│   │   └── cosmic_files.ftl
│   ├── ja/
│   │   └── cosmic_files.ftl
│   ├── jv/
│   │   └── cosmic_files.ftl
│   ├── ka/
│   │   └── cosmic_files.ftl
│   ├── kab/
│   │   └── cosmic_files.ftl
│   ├── kk/
│   │   └── cosmic_files.ftl
│   ├── kmr/
│   │   └── cosmic_files.ftl
│   ├── kn/
│   │   └── cosmic_files.ftl
│   ├── ko/
│   │   └── cosmic_files.ftl
│   ├── li/
│   │   └── cosmic_files.ftl
│   ├── lt/
│   │   └── cosmic_files.ftl
│   ├── ml/
│   │   └── cosmic_files.ftl
│   ├── ms/
│   │   └── cosmic_files.ftl
│   ├── nb-NO/
│   │   └── cosmic_files.ftl
│   ├── nl/
│   │   └── cosmic_files.ftl
│   ├── nn/
│   │   └── cosmic_files.ftl
│   ├── oc/
│   │   └── cosmic_files.ftl
│   ├── pa/
│   │   └── cosmic_files.ftl
│   ├── pl/
│   │   └── cosmic_files.ftl
│   ├── pt/
│   │   └── cosmic_files.ftl
│   ├── pt-BR/
│   │   └── cosmic_files.ftl
│   ├── ro/
│   │   └── cosmic_files.ftl
│   ├── ru/
│   │   └── cosmic_files.ftl
│   ├── sk/
│   │   └── cosmic_files.ftl
│   ├── sl/
│   │   └── cosmic_files.ftl
│   ├── sr/
│   │   └── cosmic_files.ftl
│   ├── sr-Cyrl/
│   │   └── cosmic_files.ftl
│   ├── sr-Latn/
│   │   └── cosmic_files.ftl
│   ├── sv/
│   │   └── cosmic_files.ftl
│   ├── ta/
│   │   └── cosmic_files.ftl
│   ├── th/
│   │   └── cosmic_files.ftl
│   ├── ti/
│   │   └── cosmic_files.ftl
│   ├── tr/
│   │   └── cosmic_files.ftl
│   ├── uk/
│   │   └── cosmic_files.ftl
│   ├── uz/
│   │   └── cosmic_files.ftl
│   ├── vi/
│   │   └── cosmic_files.ftl
│   ├── yue-Hant/
│   │   └── cosmic_files.ftl
│   ├── zh-CN/
│   │   └── cosmic_files.ftl
│   └── zh-TW/
│       └── cosmic_files.ftl
├── i18n.toml
├── justfile
├── res/
│   ├── com.system76.CosmicFiles.desktop
│   └── com.system76.CosmicFiles.metainfo.xml
├── rust-toolchain.toml
├── rustfmt.toml
├── samples/
│   ├── i18n/
│   │   ├── منزل
│   │   └── 主目錄
│   ├── mime/
│   │   ├── application/
│   │   │   ├── javascript.js
│   │   │   ├── octet-stream
│   │   │   ├── x-shellscript.sh
│   │   │   └── x-yaml.yaml
│   │   ├── audio/
│   │   │   └── x-vorbis+ogg.ogg
│   │   ├── check.sh
│   │   └── text/
│   │       ├── css.css
│   │       ├── csv.csv
│   │       ├── html.html
│   │       ├── markdown.md
│   │       ├── plain.txt
│   │       ├── rust.rs
│   │       ├── x-chdr.h
│   │       └── x-csrc.c
│   └── mode/
│       ├── .gitignore
│       └── create.sh
├── scripts/
│   └── copy.sh
└── src/
    ├── app.rs
    ├── archive.rs
    ├── channel.rs
    ├── clipboard.rs
    ├── config.rs
    ├── context_action.rs
    ├── dialog.rs
    ├── key_bind.rs
    ├── large_image.rs
    ├── lib.rs
    ├── load_image.rs
    ├── localize.rs
    ├── main.rs
    ├── menu.rs
    ├── mime_app.rs
    ├── mime_icon.rs
    ├── mounter/
    │   ├── gvfs.rs
    │   └── mod.rs
    ├── mouse_area.rs
    ├── operation/
    │   ├── controller.rs
    │   ├── mod.rs
    │   ├── notifiers.rs
    │   ├── reader.rs
    │   └── recursive.rs
    ├── spawn_detached.rs
    ├── tab.rs
    ├── thumbnail_cacher.rs
    ├── thumbnailer.rs
    ├── trash.rs
    └── zoom.rs

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
<!--
Please include in the title whether this is a bug report or a feature request.

Also, please search existing issues (both open and closed) to make sure what you're reporting or requesting hasn't already been reported or requested.

If this is a question or general discussion topic, please start a conversation in our chat https://chat.pop-os.org in the ~cosmic-epoch channel.
-->

**Cosmic-files version:**
<!-- (run `apt policy cosmic-files`, or the appropriate substitution for your package manager) -->

**Issue/Bug description:**

**Steps to reproduce:**

**Expected behavior:**

**Other notes:**


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
- [ ] I have disclosed use of any AI generated code in my commit messages.
  - If you are using an LLM, and do not fully understand the changes it is making to the code base, do not create a PR.
  - In our experience, AI generated code often results in overly complex code that lacks enough context for a proper fix or feature inclusion. This results in considerably longer code reviews. Due to this, AI authored or partially authored PRs may be closed without comment.
- [ ] I understand these changes in full and will be able to respond to review comments.
- [ ] My change is accurately described in the commit message.
- [ ] My contribution is tested and working as described.
- [ ] I have read the [Developer Certificate of Origin](https://developercertificate.org/) and certify my contribution under its conditions.



================================================
FILE: .github/workflows/ci.yml
================================================
name: Cargo Build & Test

on:
  push:
    branches:
    - master
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    name: cosmic-files - latest
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: sudo apt-get update; sudo apt-get install libclang-dev libglib2.0-dev libxkbcommon-dev
      - run: rustup update stable && rustup default stable
      - run: cargo test --verbose --no-default-features
      - run: cargo test --verbose
      - run: cargo test --verbose --all-features


================================================
FILE: .github/workflows/validate-desktop-files.yml
================================================
name: Validate .desktop files

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  validate:
    runs-on: ubuntu-latest
    container:
      image: ubuntu:25.10
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install desktop-file-utils
        run: |
          apt-get update
          apt-get install -y desktop-file-utils findutils

      - name: Validate .desktop files
        run: |
          set -e
          echo "Checking for .desktop files..."
          files=$(find . -type f -name "*.desktop")
          if [ -z "$files" ]; then
            echo "No .desktop files found."
            exit 0
          fi

          echo "$files" | while read -r file; do
            echo "Validating: $file"
            desktop-file-validate "$file"
          done


================================================
FILE: .gitignore
================================================
/.cargo/
/debian/*debhelper*
/debian/cosmic-files.substvars
/debian/cosmic-files/
/debian/files
/flamegraph.svg
/heaptrack.*
/perf.*
/target/
/test/
/vendor.tar
/vendor/


================================================
FILE: .zed/settings.json
================================================
{
  "format_on_save": "on",
  "lsp": {
    "rust-analyzer": {
      "initialization_options": {
        "check": {
          "command": "clippy",
        },
        "rustfmt": {
          "extraArgs": ["+nightly"],
        },
      },
    },
  },
}


================================================
FILE: Cargo.toml
================================================
[package]
name = "cosmic-files"
version = "1.0.12"
authors = ["Jeremy Soller <jeremy@system76.com>"]
edition = "2024"
license = "GPL-3.0-only"
rust-version = "1.93"

[dependencies]
anyhow = "1"
jiff = "0.2"
jiff-icu = "0.2"
icu = { version = "2.2.0", features = ["compiled_data"] }
cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "160b086", optional = true }
cosmic-mime-apps = { git = "https://github.com/pop-os/cosmic-mime-apps.git", optional = true }
dirs = "6.0.0"
gio = { version = "0.21", optional = true }
glib = { version = "0.21", optional = true }
glob = "0.3"
ignore = "0.4"
image = "0.25"
libc = "0.2"
log = "0.4"
mime_guess = "2"
notify-debouncer-full = "0.7"
notify-rust = { version = "4", optional = true }
open = "5.3.4"
paste = "1.0"
regex = "1"
rustc-hash = "2.1"
serde = { version = "1", features = ["serde_derive"] }
shlex = { version = "1.3" }
tempfile = "3"
tikv-jemallocator = { version = "0.6", optional = true }
tokio = { version = "1", features = ["process", "sync"] }
trash = { git = "https://github.com/jackpot51/trash-rs.git", branch = "cosmic" }
url = "2.5"
walkdir = "2.5.0"
wayland-client = { version = "0.31.14", optional = true }
xdg = { version = "3.0", optional = true }
xdg-mime = { git = "https://github.com/ebassi/xdg-mime-rs" }
# Compression
bzip2 = { version = "0.6", optional = true }           #TODO: replace with pure Rust crate
flate2 = "1.1"
tar = "0.4.45"
lzma-rust2 = { version = "0.16", optional = true }
ordermap = { version = "1.2.0", features = ["serde"] }
# Internationalization
i18n-embed = { version = "0.16", features = [
    "fluent-system",
    "desktop-requester",
] }
i18n-embed-fl = "0.10"
rust-embed = "8"
slotmap = "1.1.1"
recently-used-xbel = "1.2.0"
zip = "8"
md-5 = "0.10.6"
png = "0.18"
jxl-oxide = { version = "0.12.5", features = ["image"] }
num_cpus = "1.17.0"
filetime = "0.2"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
thiserror = "2.0.18"
atomic_float = "1.1.0"
num_enum = "0.7.6"
bstr = "1.12.1"

# Completion-based IO runtime to enable io_uring / IOCP file IO support.
[dependencies.compio]
version = "0.18"
default-features = false
features = ["fs", "io", "macros", "polling", "runtime"]

[dependencies.libcosmic]
git = "https://github.com/pop-os/libcosmic.git"
default-features = false
#TODO: a11y feature crashes
features = [
    "about",
    "advanced-shaping",
    "autosize",
    "multi-window",
    "tokio",
    "winit",
    "surface-message",
]

[[example]]
name = "gio-list"
required-features = ["gvfs"]

[[example]]
name = "gio-mount"
required-features = ["gvfs"]

[[example]]
name = "gvfs"
required-features = ["gvfs"]

[features]
default = [
    "bzip2",
    "dbus-config",
    "desktop",
    "gvfs",
    "io-uring",
    "lzma-rust2",
    "notify",
    "wayland",
    "wgpu",
]
dbus-config = ["libcosmic/dbus-config"]
desktop = ["libcosmic/desktop", "dep:cosmic-mime-apps", "dep:xdg"]
desktop-applet = []
gvfs = ["dep:gio", "dep:glib"]
io-uring = ["compio/io-uring"]
jemalloc = ["dep:tikv-jemallocator"]
notify = ["dep:notify-rust"]
wayland = ["libcosmic/wayland", "dep:cctk", "dep:wayland-client"]
wgpu = ["libcosmic/wgpu"]

[profile.dev]
opt-level = 1

[profile.release-with-debug]
inherits = "release"
debug = true

[target.'cfg(unix)'.dependencies]
fork = "0.7"
uzers = "0.12.2"

[target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.18"

[build-dependencies]
xdgen = "0.1"

[dev-dependencies]
# cap-std = "3"
# cap-tempfile = "3"
fastrand = "2"
test-log = "0.2"
tokio = { version = "1", features = ["rt", "macros"] }

# [patch.'https://github.com/pop-os/cosmic-text']
# cosmic-text = { path = "../cosmic-text" }

# [patch.'https://github.com/pop-os/libcosmic']
# libcosmic = { path = "../libcosmic" }
# cosmic-config = { path = "../libcosmic/cosmic-config" }
# cosmic-theme = { path = "../libcosmic/cosmic-theme" }
# libcosmic = { git = "https://github.com/pop-os/libcosmic//", branch = "iced-rebase" }
# cosmic-config = { git = "https://github.com/pop-os/libcosmic//", branch = "iced-rebase" }
# cosmic-theme = { git = "https://github.com/pop-os/libcosmic//", branch = "iced-rebase" }


# [patch.'https://github.com/pop-os/smithay-clipboard']
# smithay-clipboard = { path = "../smithay-clipboard" }

[workspace]
members = ["cosmic-files-applet"]


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.


================================================
FILE: README.md
================================================
# cosmic-files
File manager for the COSMIC desktop environment

## Build the project from source

```sh
# Clone the project using `git`
git clone https://github.com/pop-os/cosmic-files
# Change to the directory that was created by `git`
cd cosmic-files
# Build an optimized version using `cargo`, this may take a while
cargo build --release
# Run the optimized version using `cargo`
cargo run --release
```

## Community and Contributing

The COSMIC desktop environment is maintained by System76 for use in Pop!_OS. A list of all COSMIC projects can be found in the
[cosmic-epoch](https://github.com/pop-os/cosmic-epoch) project's README. If you would like to discuss COSMIC and Pop!_OS, please
consider joining the [Pop!_OS Chat](https://chat.pop-os.org/). More information and links can be found on the
[Pop!_OS Website](https://pop.system76.com).

## License

This project is licensed under [GPLv3](LICENSE)


================================================
FILE: TESTING.md
================================================
# Testing

This document provides a regression testing checklist for COSMIC Files. The checklist provides a starting point for Quality Assurance reviews.

## Checklist

### Basic navigation

- [ ] Middle-click opens directory in a new tab (not focused).
- [ ] Open two scrollable tabs. Scroll one tab, then switch to the other tab; it should not have scrolled.
- [ ] Hover over the top item in the folder, then scroll down until it's out of view (while still hovered).
      On scrolling back up (with the mouse in a different position), the item should not have the hover highlight.
- [ ] Right-click an item in the sidebar. No visual change should occur with the rest of the items.
- [ ] Remove an item from the sidebar, then re-pin it.

### File operations

- [ ] Right-click -> Create a new folder, then enter it.
- [ ] Right-click in the empty folder -> Create a new file.
- [ ] Navigate to the parent folder, create another new file, then drag it into the created folder.
- [ ] Files can be renamed.
- [ ] Files can be opened with non-default apps & browsing store for new apps works.
- [ ] Normal right-click shows `Move to trash` option.
- [ ] Shift right-click, and right-click followed by Shift, both show `Permanently delete` option.

### Advanced navigation & view settings

- [ ] Image and video thumbnails generate & display in local folders.
- [ ] Gallery preview shows with Spacebar.
- [ ] Details pane shows with Ctrl+Spacebar.
- [ ] Zoom in/out and reset to default zoom work.
- [ ] Ctrl+1 and Ctrl+2 switch between list and icon view.
- [ ] Ctrl+H shows/hides hidden files.
- [ ] Directories can be sorted at top or inline.
- [ ] Settings -> Theme works.
- [ ] Settings -> Type to Search affects behavior as designed.
- [ ] Single-click to open setting takes effect.
- [ ] Sorting options work.
- [ ] Cutting, copying, and pasting files works.
- [ ] F5 reloads current directory.
- [ ] Left sidebar can be collapsed and expanded.

### External filesystems

- [ ] Add a network drive (e.g. SFTP) and navigate into it.
- [ ] Plug in a USB drive; able to mount, browse, and eject.

### Integrations

- [ ] Desktop icons display as expected
- [ ] Drag-and-drop into Firefox works


================================================
FILE: build.rs
================================================
use std::path::PathBuf;
use std::{env, fs};
use xdgen::{App, Context, FluentString};

fn main() {
    let id = "com.system76.CosmicFiles";
    let ctx = Context::new("i18n", env::var("CARGO_PKG_NAME").unwrap()).unwrap();
    let app = App::new(FluentString("cosmic-files"))
        .comment(FluentString("comment"))
        .keywords(FluentString("keywords"));
    let output = PathBuf::from("target/xdgen");
    fs::create_dir_all(&output).unwrap();
    fs::write(
        output.join(format!("{}.desktop", id)),
        app.expand_desktop(format!("res/{}.desktop", id), &ctx)
            .unwrap(),
    )
    .unwrap();
    fs::write(
        output.join(format!("{}.metainfo.xml", id)),
        app.expand_metainfo(format!("res/{}.metainfo.xml", id), &ctx)
            .unwrap(),
    )
    .unwrap();
}


================================================
FILE: cosmic-files-applet/Cargo.toml
================================================
[package]
name = "cosmic-files-applet"
version = "1.0.12"
edition = "2024"

[dependencies]
log = "0.4"
zbus = "4" # Blocking connection in zbus 5 hangs

[dependencies.cosmic-files]
path = ".."
default-features = false
features = ["desktop", "gvfs", "wayland", "desktop-applet"]


================================================
FILE: cosmic-files-applet/src/file_manager.rs
================================================
// SPDX-License-Identifier: GPL-3.0-only
// Implementation of https://www.freedesktop.org/wiki/Specifications/file-manager-interface/

#![allow(dead_code, non_snake_case)]

use std::process;

pub struct FileManager;

impl FileManager {
    //TODO: return error?
    fn open(&self, uris: &[&str], _startup_id: &str) {
        match process::Command::new("cosmic-files").args(uris).spawn() {
            Ok(mut child) => {
                log::info!("spawned cosmic-files with id {:?}", child.id());
                match child.wait() {
                    Ok(status) => {
                        if status.success() {
                            log::info!("cosmic-files exited with {status}");
                        } else {
                            log::warn!("failed to run cosmic-files: exited with {status}");
                        }
                    }
                    Err(err) => {
                        log::warn!("failed to run cosmic-files: {err}");
                    }
                }
            }
            Err(err) => {
                log::warn!("failed to spawn cosmic-files: {err}");
            }
        }
    }
}

//TODO: why does &[&str] not implement Deserialize?
#[zbus::interface(name = "org.freedesktop.FileManager1")]
impl FileManager {
    fn ShowFolders(&self, URIs: Vec<&str>, StartupId: &str) {
        log::warn!("ShowFolders {:?} {:?}", URIs, StartupId);
        self.open(&URIs, StartupId)
    }

    fn ShowItems(&self, URIs: Vec<&str>, StartupId: &str) {
        log::warn!("ShowItems {:?} {:?}", URIs, StartupId);
        self.open(&URIs, StartupId)
    }

    fn ShowItemProperties(&self, URIs: Vec<&str>, StartupId: &str) {
        log::warn!("ShowItemProperties {:?} {:?}", URIs, StartupId);
        self.open(&URIs, StartupId)
    }
}


================================================
FILE: cosmic-files-applet/src/main.rs
================================================
mod file_manager;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    //TODO: move file manager service to its own daemon?
    let _conn_res = zbus::blocking::connection::Builder::session()?
        .name("org.freedesktop.FileManager1")?
        .serve_at("/org/freedesktop/FileManager1", file_manager::FileManager)?
        .build();

    cosmic_files::desktop()
}


================================================
FILE: debian/changelog
================================================
cosmic-files (1.0.12) noble; urgency=medium

  * Epoch 1.0.12 version update

 -- Jeremy Soller <jeremy@system76.com>  Tue, 05 May 2026 10:23:57 -0600

cosmic-files (1.0.11) noble; urgency=medium

  * Epoch 1.0.11 version update

 -- Jeremy Soller <jeremy@system76.com>  Tue, 14 Apr 2026 11:09:44 -0600

cosmic-files (1.0.9) noble; urgency=medium

  * Epoch 1.0.9 version update

 -- Jeremy Soller <jeremy@system76.com>  Mon, 06 Apr 2026 15:10:13 -0600

cosmic-files (1.0.8) noble; urgency=medium

  * Epoch 1.0.8 version update

 -- Jeremy Soller <jeremy@system76.com>  Mon, 23 Feb 2026 08:13:12 -0700

cosmic-files (1.0.7) noble; urgency=medium

  * Epoch 1.0.7 version update

 -- Jeremy Soller <jeremy@system76.com>  Tue, 17 Feb 2026 07:58:35 -0700

cosmic-files (1.0.6) noble; urgency=medium

  * Epoch 1.0.6 version update

 -- Jeremy Soller <jeremy@system76.com>  Thu, 05 Feb 2026 15:23:07 -0700

cosmic-files (1.0.5) noble; urgency=medium

  * Epoch 1.0.5 version update

 -- Jeremy Soller <jeremy@system76.com>  Fri, 30 Jan 2026 17:16:28 -0700

cosmic-files (1.0.4) noble; urgency=medium

  * Epoch 1.0.4 version update

 -- Jeremy Soller <jeremy@system76.com>  Wed, 21 Jan 2026 10:16:11 -0700

cosmic-files (1.0.0) jammy; urgency=medium

  * Stable release.

 -- Jeremy Soller <jeremy@system76.com>  Mon, 29 Dec 2025 15:12:39 -0700

cosmic-files (0.1.0) jammy; urgency=medium

  * Initial release.

 -- Jeremy Soller <jeremy@system76.com>  Wed, 03 Jan 2024 13:38:21 -0700


================================================
FILE: debian/control
================================================
Source: cosmic-files
Section: admin
Priority: optional
Maintainer: Jeremy Soller <jeremy@system76.com>
Build-Depends:
    debhelper-compat (=13),
    git,
    just (>= 1.13.0),
    libclang-dev,
    libglib2.0-dev,
    libxkbcommon-dev,
    pkg-config,
    rust-all,
Standards-Version: 4.6.2
Homepage: https://github.com/pop-os/cosmic-files

Package: cosmic-files
Architecture: amd64 arm64
Depends: ${misc:Depends}, ${shlibs:Depends}, xdg-utils
Description: Cosmic File Manager


================================================
FILE: debian/copyright
================================================
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: cosmic-files
Upstream-Contact: Jeremy Soller <jeremy@system76.com>
Source: https://github.com/pop-os/cosmic-files
Files: *
Copyright: System76 <info@system76.com>
License: GPL-3.0


================================================
FILE: debian/rules
================================================
#!/usr/bin/make -f

export DESTDIR = debian/cosmic-files
export VENDOR ?= 1

%:
	dh $@

override_dh_auto_clean:
	if ! ischroot && test "${VENDOR}" = "1"; then \
		just vendor; \
	fi

override_dh_auto_build:
	just build-vendored

override_dh_auto_install:
	just rootdir=$(DESTDIR) install


================================================
FILE: debian/source/format
================================================
3.0 (native)


================================================
FILE: debian/source/options
================================================
tar-ignore=.github
tar-ignore=.vscode
tar-ignore=vendor
tar-ignore=target

================================================
FILE: examples/copy.rs
================================================
use cosmic_files::operation::recursive::{Context, Method};
use cosmic_files::operation::{Controller, ReplaceResult};
use std::error::Error;
use std::io;
use std::path::PathBuf;

#[compio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let mut context = Context::new(Controller::default())
        .on_progress(|op, progress| {
            println!("{:?}: {:?}", op.to, progress);
        })
        .on_replace(|op, conflicting_count| {
            Box::pin(async move {
                println!(
                    "replace {:?}? (y/N) [conflicting: {}]",
                    op.to, conflicting_count
                );
                let mut line = String::new();
                match io::stdin().read_line(&mut line) {
                    Ok(_) => {
                        if line == "y" {
                            ReplaceResult::Replace(false)
                        } else {
                            ReplaceResult::Skip(false)
                        }
                    }
                    Err(err) => {
                        eprintln!("failed to read stdin: {}", err);
                        ReplaceResult::Cancel
                    }
                }
            })
        });

    context
        .recursive_copy_or_move(
            vec![(PathBuf::from("test/a"), PathBuf::from("test/b"))],
            Method::Copy,
        )
        .await?;
    context
        .recursive_copy_or_move(
            vec![(PathBuf::from("test/b"), PathBuf::from("test/c"))],
            Method::Move {
                cross_device_copy: false,
            },
        )
        .await?;

    Ok(())
}


================================================
FILE: examples/desktop.rs
================================================
// This launches the desktop mode as a regular window for easier testing.
fn main() -> Result<(), Box<dyn std::error::Error>> {
    cosmic_files::desktop()
}


================================================
FILE: examples/dialog.rs
================================================
use cosmic::app::{self, Core, Settings, Task};
use cosmic::iced::{Subscription, window};
use cosmic::{Application, Element, executor, widget};
use cosmic_files::dialog::{
    Dialog, DialogChoice, DialogChoiceOption, DialogFilter, DialogFilterPattern, DialogKind,
    DialogMessage, DialogResult, DialogSettings,
};
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let log_format = tracing_subscriber::fmt::format()
        .pretty()
        .without_time()
        .with_line_number(true)
        .with_file(true)
        .with_target(false)
        .with_thread_names(true);

    let log_layer = tracing_subscriber::fmt::Layer::default()
        .with_writer(std::io::stderr)
        .event_format(log_format);

    tracing_subscriber::registry()
        .with(tracing_subscriber::EnvFilter::from_env("RUST_LOG"))
        .with(log_layer)
        .init();

    let settings = Settings::default();
    app::run::<App>(settings, ())?;
    Ok(())
}

#[derive(Clone, Debug)]
pub enum Message {
    DialogMessage(DialogMessage),
    DialogOpen(DialogKind),
    DialogOpenImages,
    DialogResult(DialogResult),
}

pub struct App {
    core: Core,
    dialog_opt: Option<Dialog<Message>>,
    result_opt: Option<DialogResult>,
}

impl Application for App {
    type Executor = executor::Default;
    type Flags = ();
    type Message = Message;

    const APP_ID: &'static str = "com.system76.CosmicFilesDialogExample";

    fn core(&self) -> &Core {
        &self.core
    }

    fn core_mut(&mut self) -> &mut Core {
        &mut self.core
    }

    fn init(core: Core, _flags: Self::Flags) -> (Self, Task<Message>) {
        (
            Self {
                core,
                dialog_opt: None,
                result_opt: None,
            },
            Task::none(),
        )
    }

    fn update(&mut self, message: Message) -> Task<Message> {
        match message {
            Message::DialogMessage(dialog_message) => {
                if let Some(dialog) = &mut self.dialog_opt {
                    return dialog.update(dialog_message);
                }
            }
            Message::DialogOpen(dialog_kind) => {
                if self.dialog_opt.is_none() {
                    let (mut dialog, task) = Dialog::new(
                        DialogSettings::new().kind(dialog_kind),
                        Message::DialogMessage,
                        Message::DialogResult,
                    );
                    let mut tasks = vec![task];
                    dialog.set_choices(vec![
                        DialogChoice::ComboBox {
                            id: "example-combobox".into(),
                            label: "Combobox".into(),
                            options: vec![
                                DialogChoiceOption {
                                    id: "foo".into(),
                                    label: "foo".into(),
                                },
                                DialogChoiceOption {
                                    id: "bar".into(),
                                    label: "bar".into(),
                                },
                            ],
                            selected: Some(0),
                        },
                        DialogChoice::CheckBox {
                            id: "example-checkbox".into(),
                            label: "Checkbox".into(),
                            value: false,
                        },
                    ]);
                    tasks.push(dialog.set_filters(
                        vec![DialogFilter {
                            label: "Any file".into(),
                            patterns: vec![DialogFilterPattern::Glob("*".into())],
                        }],
                        Some(0),
                    ));
                    self.dialog_opt = Some(dialog);
                    return Task::batch(tasks);
                }
            }
            Message::DialogOpenImages => {
                if self.dialog_opt.is_none() {
                    let (mut dialog, task) = Dialog::new(
                        DialogSettings::new().kind(DialogKind::OpenFile),
                        Message::DialogMessage,
                        Message::DialogResult,
                    );
                    let mut tasks = vec![task];
                    tasks.push(dialog.set_filters(
                        vec![
                            DialogFilter {
                                label: "Images".into(),
                                patterns: vec![DialogFilterPattern::Mime("image/*".into())],
                            },
                            DialogFilter {
                                label: "Any file".into(),
                                patterns: vec![DialogFilterPattern::Glob("*".into())],
                            },
                        ],
                        Some(0),
                    ));
                    self.dialog_opt = Some(dialog);
                    return Task::batch(tasks);
                }
            }
            Message::DialogResult(result) => {
                self.dialog_opt = None;
                self.result_opt = Some(result);
            }
        }

        Task::none()
    }

    fn view_window(&self, window_id: window::Id) -> Element<'_, Message> {
        match &self.dialog_opt {
            Some(dialog) => dialog.view(window_id),
            None => widget::text::body("No dialog").into(),
        }
    }

    fn view(&self) -> Element<'_, Message> {
        let mut column = widget::column::with_capacity(8).spacing(8).padding(8);
        {
            let mut button = widget::button::standard("Open File");
            if self.dialog_opt.is_none() {
                button = button.on_press(Message::DialogOpen(DialogKind::OpenFile));
            }
            column = column.push(button);
        }
        {
            let mut button = widget::button::standard("Open Image");
            if self.dialog_opt.is_none() {
                button = button.on_press(Message::DialogOpenImages);
            }
            column = column.push(button);
        }
        {
            let mut button = widget::button::standard("Open Multiple Files");
            if self.dialog_opt.is_none() {
                button = button.on_press(Message::DialogOpen(DialogKind::OpenMultipleFiles));
            }
            column = column.push(button);
        }
        {
            let mut button = widget::button::standard("Open Folder");
            if self.dialog_opt.is_none() {
                button = button.on_press(Message::DialogOpen(DialogKind::OpenFolder));
            }
            column = column.push(button);
        }
        {
            let mut button = widget::button::standard("Open Multiple Folders");
            if self.dialog_opt.is_none() {
                button = button.on_press(Message::DialogOpen(DialogKind::OpenMultipleFolders));
            }
            column = column.push(button);
        }
        {
            let mut button = widget::button::standard("Save File");
            if self.dialog_opt.is_none() {
                button = button.on_press(Message::DialogOpen(DialogKind::SaveFile {
                    filename: "test".to_string(),
                }));
            }
            column = column.push(button);
        }
        if let Some(result) = &self.result_opt {
            match result {
                DialogResult::Cancel => {
                    column = column.push(widget::text::body("Cancel"));
                }
                DialogResult::Open(paths) => {
                    for path in paths.iter() {
                        column = column.push(widget::text::body(format!("{}", path.display())));
                    }
                }
            }
        }
        column.into()
    }

    fn subscription(&self) -> Subscription<Message> {
        match &self.dialog_opt {
            Some(dialog) => dialog.subscription(),
            None => Subscription::none(),
        }
    }
}


================================================
FILE: examples/gio-list.rs
================================================
use gio::prelude::*;
use std::env;

fn main() {
    let uri = env::args().nth(1).expect("no uri provided");
    let file = gio::File::for_uri(&uri);
    for entry_res in file
        .enumerate_children("*", gio::FileQueryInfoFlags::NONE, gio::Cancellable::NONE)
        .unwrap()
    {
        let entry = entry_res.unwrap();
        println!("{:?}", entry.display_name());
        for attribute in entry.list_attributes(None) {
            println!(
                "  {:?}: {:?}",
                attribute,
                entry.attribute_as_string(&attribute)
            );
        }

        //TODO: what is the best way to resolve shortcuts?
        let child = if let Some(target_uri) =
            entry.attribute_string(gio::FILE_ATTRIBUTE_STANDARD_TARGET_URI)
        {
            gio::File::for_uri(&target_uri)
        } else {
            file.child(entry.name())
        };
        println!("{:?}", child.uri());
    }
}


================================================
FILE: examples/gio-mount.rs
================================================
use gio::prelude::*;
use std::env;

fn main() {
    let uri = env::args().nth(1).expect("no uri provided");
    let context = glib::MainContext::new();
    context.block_on(async {
        let mount_op = gio::MountOperation::new();
        mount_op.connect_ask_password(|mount_op, message, default_user, default_domain, flags| {
            println!(
                "{}, {}, {}, {:?}",
                message, default_user, default_domain, flags
            );
            mount_op.set_anonymous(true);
            mount_op.reply(gio::MountOperationResult::Handled);
        });
        let file = gio::File::for_uri(&uri);
        let res = file
            .mount_enclosing_volume_future(gio::MountMountFlags::empty(), Some(&mount_op))
            .await;
        println!("{:?}", res);
    });
}


================================================
FILE: examples/gvfs.rs
================================================
use gio::prelude::*;

fn main() {
    let monitor = gio::VolumeMonitor::get();
    for drive in monitor.connected_drives() {
        println!("Drive: {}", drive.name());
        for id in drive.enumerate_identifiers() {
            println!("  ID: {}={:?}", id, drive.identifier(&id));
        }
        for volume in drive.volumes() {
            println!("  Volume: {}", volume.name());
            println!("    UUID: {:?}", volume.uuid());
            for id in volume.enumerate_identifiers() {
                println!("    ID: {}={:?}", id, volume.identifier(&id));
            }
            if let Some(mount) = volume.get_mount() {
                println!("    Mount: {}", mount.name());
                println!("      UUID: {:?}", mount.uuid());
            }
        }
    }

    for mount in monitor.mounts() {
        println!("Mount: {}", mount.name());
        println!("  UUID: {:?}", mount.uuid());
    }

    for volume in monitor.volumes() {
        println!("Volume: {}", volume.name());
        println!("  UUID: {:?}", volume.uuid());
        for id in volume.enumerate_identifiers() {
            println!("  ID: {}={:?}", id, volume.identifier(&id));
        }
        if let Some(mount) = volume.get_mount() {
            println!("  Mount: {}", mount.name());
            println!("    UUID: {:?}", mount.uuid());
        }
    }
}


================================================
FILE: i18n/af/cosmic_files.ftl
================================================
support = Ondersteuning
cancel = Kanselleer
settings = Instellings
theme = Tema
light = Lig
dark = Donker
cosmic-files = COSMIC Leêrs
file = Lêer
open-file = Oop 'n lêer
connect = Konnekteer
password = Wagwoord
name = Naam
empty-folder = Leë vouer
empty-folder-hidden = Leë vouer (met versteekte items)
no-results = Geen resultate gevind nie
filesystem = Lêerstelsel
home = Tuis
networks = Netwerke
notification-in-progress = Lêerbewerkings is aan die gang.
trash = Asblik
repository = Kodebank
open-folder = Oop 'n vouer
match-desktop = Stelselstandaard
username = Gebruikersnaam
appearance = Vertoon
delete = Skrap
new-tab = Nuwe oortjie
close-tab = Maak oortjie toe
quit = Sluit
edit = Redigeer
copy = Kopieer
paste = Plak
select-all = Selekteer alles
replace = Vervang
new-window = Nuwe venster
save = Stoor
undo = Ontdoen
cut = Knip
view = Beeld
default-size = Standaardgrootte
zoom-out = Zoem uit
zoom-in = Zoem in
menu-settings = Instellings…


================================================
FILE: i18n/ar/cosmic_files.ftl
================================================
cosmic-files = ملفات COSMIC
comment = مدير ملفات لسطح مكتب COSMIC
keywords = مجلد;ملف;مدير;
empty-folder = مجلد فارغ
empty-folder-hidden = مجلد فارغ (يحتوي على عناصر مخفية)
filesystem = نظام الملفات
home = منزل
trash = المهملات
recents = الأحدث
# List view
name = الاسم
modified = مُعدل
size = الحجم

# Dialogs


## Empty Trash Dialog

empty-trash = أفرغ المهملات
empty-trash-warning = سيتم حذف العناصر الموجودة في مجلد المهملات نهائيًا

## New File/Folder Dialog

create-new-file = أنشئ ملف جديد
create-new-folder = أنشئ مجلَّد جديد
file-name = اسم الملف
folder-name = اسم المجلَّد
file-already-exists = يوجد ملف بهذا الاسم بالفعل
folder-already-exists = يوجد مجلد بهذا الاسم بالفعل
name-hidden = الاسماء التي تبدأ بنقطة «.» ستكون مخفية
name-invalid = لا يمكن أن يكون الاسم «{ $filename }»
name-no-slashes = لا يمكن أن يحتوي الاسم على شرطات مائلة (/)

## Open/Save Dialog

cancel = ألغِ
open = افتح
open-file = افتح ملف
open-folder = افتح مجلَّد
open-in-new-tab = افتح في لسان جديد
open-in-new-window = افتح في نافذة جديدة
open-multiple-files = افتح عدة ملفات
open-multiple-folders = افتح عدة مجلّدات
save = احفظ
save-file = احفظ الملف

## Rename Dialog

rename-file = غيِّر اسم الملف
rename-folder = غيِّر اسم المجلّد

## Replace Dialog

replace = استبدل
replace-title = «{ $filename }» موجود بالفعل في هذا المكان
replace-warning = أتريد استبداله بالملف الذي تحفظه؟ سيكتب هذا فوق محتوى الملف.

# Context Pages


## About


## Operations

pending = قيد الانتظار
failed = فشِل
complete = اكتمل
copy_noun = نسخ

## Open with

menu-open-with = افتح ب‍استخدام...
default-app = { $name } (المبدئي)

## Properties


## Settings

settings = الإعدادات

### Appearance

appearance = المظهر
theme = النسق
match-desktop = طابق سطح المكتب
dark = داكن
light = فاتح
# Context menu
add-to-sidebar = أضِف إلى الشريط الجانبي
new-file = ملف جديد...
new-folder = مجلد جديد...
open-in-terminal = افتح في الطرفية
move-to-trash = انقل إلى المهملات
restore-from-trash = استعِد من المهملات
remove-from-sidebar = أزِل من الشريط الجانبي
sort-by-name = رتّب حسب الاسم
sort-by-modified = رتّب حسب التعديل
sort-by-size = رتّب حسب الحجم

# Menu


## File

file = ملف
new-tab = لسان جديد
new-window = نافذة جديدة
rename = غيِّر الاسم...
close-tab = أغلق اللسان
quit = أنهِ

## Edit

edit = عدِّل
cut = قصّ
copy = انسخ
paste = ألصِق
select-all = حدِّد الكل

## View

zoom-in = قرِّب
default-size = الحجم المبدئي
zoom-out = بعِّد
view = عرض
grid-view = عرض الشبكة
list-view = عرض اللائحة
show-hidden-files = أظهر الملفات المخفية
list-directories-first = اسرد المجلدات اولاً
menu-settings = الإعدادات...
menu-about = عن مدير ملفات COSMIC...
dismiss = أهمِل الرسالة
no-results = لم يُعثر على نتائج
networks = الشبكات
notification-in-progress = عمليات الملفات جارية
undo = تراجع
today = اليوم
desktop-view-options = خيارات عرض سطح المكتب...
show-on-desktop = أظهِر على سطح المكتب
desktop-folder-content = محتوى مجلد سطح المكتب
mounted-drives = محركات الأقراص المثبتة
trash-folder-icon = أيقونة مجلد المهملات
icon-size-and-spacing = حجم الأيقونة والتباعد
icon-size = حجم الأيقونة
grid-spacing = تباعد شبكي
trashed-on = مهمل
details = التفاصيل
pause = ألبث
resume = استئناف
create-archive = أنشئ أرشيف
extract-password-required = كلمة السر مطلوبة
extract-to = استخرِج إلى...
extract-to-title = استخرِج إلى مجلّد
mount-error = تعذر الوصول إلى القرص
create = أنشئ
open-item-location = افتح مكان العنصر
set-executable-and-launch-description = أتريد تعيين «{ $name }» كقابل للتنفيذ وتشغيله؟
favorite-path-error-description =
    تعذر فتح «{ $path }»
    قد لا يكون «{ $path }» موجودًا أو قد لا يكون لديك إذن لفتحه.

    أترغب في إزالته من الشريط الجانبي؟
open-with-title = كيف تريد فتح «{ $name }»؟
read-execute = قراءة وتنفيذ
read-write = قراءة وكتابة
read-write-execute = قراءة وكتابة وتنفيذ
favorite-path-error = خطأ في فتح المجلّد
remove = أزِل
keep = أبقِ
repository = المستودع
support = الدعم
add-network-drive = أضِف قرص شبكة
connect = اتصل
connect-anonymously = اتصل بمجهولية
connecting = يتصل...
domain = النطاق
enter-server-address = أدخل عنوان الخادم
network-drive-description =
    تتضمن عناوين الخادم بادئة ميفاق وعنوانًا.
    أمثلة: ssh://192.168.0.1 ،ftp://[2001:db8::1]
network-drive-schemes =
    الموافيق المتاحة، البادئة
    AppleTalk, afp://
    ميفاق نقل الملفات, ftp:// أو ftps://
    نظام ملفات الشبكة, nfs://
    كتلة رسائل الخادم, smb://
    ميفاق نقل ملفات SSH, sftp:// أو ssh://
    WebDAV, dav:// أو davs://
network-drive-error = تعذر الوصول القرص الشبكي
password = كلمة السر
remember-password = تذكر كلمة السر
try-again = حاول مجددًا
username = اسم المستخدم
cancelled = أُلغِيَ
edit-history = عدِّل التأريخ
history = التأريخ
no-history = لا توجد عناصر في التأريخ.
progress = { $percent }٪
progress-cancelled = { $percent }٪، أُلغِيَ
progress-failed = { $percent }٪، فشل
progress-paused = { $percent }٪، أُلبِث
creating = ينشئ «{ $name }» في «{ $parent }»
created = أُنشئ «{ $name }» في «{ $parent }»
emptying-trash = جارِ تفريغ { trash } ({ $progress })...
emptied-trash = أُفرِغت { trash }
setting-executable-and-launching = يعيِّن «{ $name }» كقابل للتنفيذ ويُشغِّل
set-executable-and-launched = عيِّن «{ $name }» كقابل للتنفيذ وشُغَّل
setting-permissions = يعيِّن الأذونات لـ«{ $name }» إلى «{ $mode }»
set-permissions = عيِّن أذونات «{ $name }» إلى «{ $mode }»
renaming = تُعاد تسمية «{ $from }» إلى «{ $to }»
renamed = غُيِّر اسم «{ $from }» إلى «{ $to }»
unknown-folder = مجلد مجهول
show-details = أظهِر التفاصيل
type = النوع: { $mime }
items = العناصر: { $items }
item-size = الحجم: { $size }
item-created = أُنشئ في: { $created }
item-modified = عُدّل في: { $modified }
item-accessed = آخر وصول: { $accessed }
calculating = يحسب...
single-click = نقرة واحدة للفتح
type-to-search = اكتب للبحث
type-to-search-recursive = يبحث في المجلّد الحالي وجميع المجلّدات الفرعية
type-to-search-enter-path = يدخل المسار إلي المجلّد أو الملف
compress = اضغط...
delete-permanently = احذف نهائيًا
eject = أخرِج
extract-here = استخرِج
sort-by-trashed = رتّب حسب وقت الحذف
remove-from-recents = أزِل من الحديثة
change-wallpaper = غيِّر خلفية الشاشة...
desktop-appearance = مظهر سطح المكتب...
display-settings = إعدادات العرض...
reload-folder = أعد تحميل المجلّد
gallery-preview = معاينة المعرض
sort = رتّب
sort-a-z = أ-ي
sort-z-a = ي-أ
sort-newest-first = الأحدث أولاً
sort-oldest-first = الأقدم أولاً
sort-smallest-to-largest = من الأصغر إلى الأكبر
sort-largest-to-smallest = من الأكبر إلي الأصغر
operations-running =
    { $running } { $running ->
        [one] عملية
       *[other] عمليات
    } قيد التشغيل ({ $percent }%)...
operations-running-finished =
    { $running } { $running ->
        [one] عملية
       *[other] عمليات
    } قيد التشغيل ({ $percent }%)، { $finished } انتهى...
browse-store = تصفح { $store }
other-apps = تطبيقات أخرى
related-apps = تطبيقات ذات صلة
selected-items = العناصر { $items } المحدّدة
permanently-delete-question = احذف نهائيًا؟
delete = احذف
permanently-delete-warning = سيُحذف { $target } نهائيًا. لا يمكن التراجع عن هذا الإجراء.
replace-warning-operation = أتريد استبداله؟ استبداله سيكتب فوق محتواه.
original-file = الملف الأصلي
replace-with = استبدل بـ
apply-to-all = طبِّق على الكلّ
keep-both = احتفظ بكليهما
skip = تخطَّ
set-executable-and-launch = عيِّن كقابل للتنفيذ وشغِّل
set-and-launch = عيِّن وشغِّل
open-with = افتح بـ
owner = المالك
group = المجموعة
other = أخرى
none = لا شيء
execute-only = تنفيذ فقط
write-only = كتابة فقط
write-execute = كتابة وتنفيذ
read-only = قراءة فقط
compressing =
    جارِ ضغط { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من «{ $from }» إلى «{ $to }» ({ $progress })...
compressed =
    ضُغط { $items } { $items ->
        [one] عنصر
       *[other] عنصر
    } من «{ $from }» إلى «{ $to }»
copied =
    نُسِخ { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من «{ $from }» إلى «{ $to }»
deleting =
    يحذف { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من { trash } ({ $progress })...
deleted =
    حُذف { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من { trash }
copying =
    ينسخ { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من «{ $from }» إلى «{ $to }» ({ $progress })...
extracting =
    يستخرِج { $items } { $items ->
        [one] عنصر
       *[other] عنصار
    } من «{ $from }» إلى «{ $to }» ({ $progress })...
extracted =
    استُخرِج { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من «{ $from }» إلى «{ $to }»
moving =
    ينقل { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من «{ $from }» إلى «{ $to }» ({ $progress })...
moved =
    نُقل { $items } { $items ->
        [one] item
       *[other] items
    } من «{ $from }» إلى «{ $to }»
permanently-deleting =
    يحذف { $items } بشكل نهائي { $items ->
        [one] عنصر
       *[other] عناصر
    }
permanently-deleted =
    حُذف { $items } بشكل نهائي { $items ->
        [one] عنصر
       *[other] عناصر
    }
removing-from-recents =
    يُزيل { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من { recents }
removed-from-recents =
    أُزيل { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من { recents }
restoring =
    يستعيد { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من { trash } ({ $progress })...
restored =
    استُعيد { $items } { $items ->
        [one] عنصر
       *[other] عناصر
    } من { trash }
empty-trash-title = أفرغ المهملات؟
type-to-search-select = يختار أول ملف أو مجلد مطابق
pasted-image = صورة مُلصقة
pasted-text = نص مُلصق
pasted-video = فيديو مُلصق
copy-to-title = حدِّد وجهة النسخ
copy-to-button-label = انسخ
move-to-title = حدِّد وجهة النقل
move-to-button-label = انقل
copy-to = انسخ إلى...
move-to = انقل إلى...
show-recents = مجلد الحديثة في الشريط الجانبي
clear-recents-history = امحُ التأريخ الحديث
copy-path = انسخ المسار
mixed = مختلط


================================================
FILE: i18n/be/cosmic_files.ftl
================================================
cosmic-files = Файлы COSMIC
empty-folder = Пустая папка
empty-folder-hidden = Пустая папка (са схаванымі элементамі)
no-results = Нічога не знойдзена
filesystem = Файлавая сістэма
home = Хатняя папка
networks = Сеткі
notification-in-progress = Ідзе аперацыя з файламі.
trash = Сметніца
recents = Нядаўняе
undo = Адрабіць
today = Сёння
# Desktop view options
desktop-view-options = Параметры выгляду працоўнага стала...
show-on-desktop = Паказваць на працоўным стале
desktop-folder-content = Змесціва папкі "Працоўны стол"
mounted-drives = Змантаваныя дыскі
trash-folder-icon = Значок папкі "Сметніца"
icon-size-and-spacing = Памер і інтэрвал значкоў
icon-size = Памер значкоў
grid-spacing = Інтэрвал сеткі
# List view
name = Назва
modified = Зменена
trashed-on = Дата выдалення
size = Памер
# Progress footer
details = Падрабязнасці
dismiss = Адхіліць паведамленне
operations-running =
    Выконваецца { $running } { $running ->
        [one] аперацыя
        [few] аперацыі
       *[other] аперацый
    } ({ $percent }%)...
operations-running-finished =
    Выконваецца { $running } { $running ->
        [one] аперацыя
        [few] аперацыі
       *[other] аперацый
    } ({ $percent }%), { $finished } завершана...
pause = Паўза
resume = Працягнуць

# Dialogs


## Compress Dialog

create-archive = Стварыць архіў

## Extract Dialog

extract-password-required = Патрабуецца пароль
extract-to = Выняць у...
extract-to-title = Выняць у папку

## Empty Trash Dialog

empty-trash = Ачысціць сметніцу
empty-trash-warning = Вы сапраўды хочаце назаўсёды выдаліць усе элементы з сметніцы?

## Mount Error Dialog

mount-error = Немагчыма атрымаць доступ да дыска
# New File/Folder Dialog
create-new-file = Стварыць новы файл
create-new-folder = Стварыць новую папку
file-name = Назва файла
folder-name = Назва папкі
file-already-exists = Файл з такой назвай ужо існуе.
folder-already-exists = Папка з такой назвай ужо існуе.
name-hidden = Назвы, якія пачынаюцца з ".", будуць схаваны.
name-invalid = Назва не можа быць "{ $filename }".
name-no-slashes = Назва не можа ўтрымліваць касыя рысы.
# Open/Save Dialog
cancel = Скасаваць
create = Стварыць
open = Адкрыць
open-file = Адкрыць файл
open-folder = Адкрыць папку
open-in-new-tab = Адкрыць у новай укладцы
open-in-new-window = Адкрыць у новым акне
open-item-location = Адкрыць месцазнаходжанне элемента
open-multiple-files = Адкрыць некалькі файлаў
open-multiple-folders = Адкрыць некалькі папак
save = Захаваць
save-file = Захаваць файл

## Open With Dialog

open-with-title = Як вы хочаце адкрыць "{ $name }"?
browse-store = Прагляд { $store }
other-apps = Іншыя праграмы
related-apps = Звязаныя праграмы

## Permanently delete Dialog

selected-items = выбрана { $items } элементаў
permanently-delete-question = Выдаліць назаўжды
delete = Выдаліць
permanently-delete-warning = Вы ўпэўненыя, што хочаце назаўжды выдаліць { $target }? Гэта дзеянне немагчыма адмяніць.
# Rename Dialog
rename-file = Перайменаваць файл
rename-folder = Перайменаваць папку
# Replace Dialog
replace = Замяніць
replace-title = { $filename } ужо існуе ў гэтым месцы.
replace-warning = Вы сапраўды хочаце замяніць яго на той, які вы захоўваеце? Пры замене яго змесціва будзе перапісана.
replace-warning-operation = Вы хочаце замяніць яго? Пры замене яго змесціва будзе перазапісана.
original-file = Зыходны файл
replace-with = Замяніць на
apply-to-all = Прымяніць да ўсіх
keep-both = Захаваць абодва
skip = Прапусціць

## Set as Executable and Launch Dialog

set-executable-and-launch = Зрабіць выканальным і запусціць
set-executable-and-launch-description = Вы хочаце зрабіць "{ $name }" выканальным і запусціць?
set-and-launch = Задаць і запусціць

## Metadata Dialog

open-with = Адкрыць праз
owner = Уладальнік
group = Група
other = Іншыя

### Mode 0

none = Няма

### Mode 1 (unusual)

execute-only = Толькі выкананне

### Mode 2 (unusual)

write-only = Толькі запіс

### Mode 3 (unusual)

write-execute = Запіс і выкананне

### Mode 4

read-only = Толькі чытанне

### Mode 5

read-execute = Чытанне і выкананне

### Mode 6

read-write = Чытанне і запіс

### Mode 7

read-write-execute = Чытанне, запіс і выкананне

## Favorite Path Error Dialog

favorite-path-error = Памылка адкрыцця каталога
favorite-path-error-description =
    Немагчыма адкрыць "{ $path }".
    Магчыма, ён не існуе ці ў вас няма дазволу на яго адкрыццё.

    Ці хочаце вы выдаліць яго з бакавой панэлі?
remove = Выдаліць
keep = Захаваць

# Context Pages


## About


## Add Network Drive

add-network-drive = Дадаць сеткавы дыск
connect = Падключыцца
connect-anonymously = Падлучыць ананімна
connecting = Падлучэнне...
domain = Дамен
enter-server-address = Увядзіце адрас серверу
network-drive-description =
    Адрасы сервераў ўключаюць у сябе прэфікс пратаколу і адрас.
    Прыклад: ssh://192.168.0.1, ftp://[2001:db8::1]

### Make sure to keep the comma which separates the columns

network-drive-schemes =
    Даступныя пратаколы,Прэфікс
    AppleTalk,afp://
    File Transfer Protocol,ftp:// або ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// або ssh://
    WebDav,dav:// або davs://
network-drive-error = Немагчыма атрымаць доступ да сеткавага дыска
password = Пароль
remember-password = Запомніць пароль
try-again = Паўтарыць спробу
username = Імя карыстальніка

## Operations

cancelled = Скасавана
edit-history = Гісторыя рэдагавання
history = Гісторыя
no-history = У гісторыі няма запісаў.
pending = У чаканні
progress = { $percent }%
progress-cancelled = { $percent }%, скасавана
progress-paused = { $percent }%, прыпынена
failed = Няўдала
complete = Завершана
compressing =
    Сцісканне { $items } { $items ->
        [one] элемента
        [few] элементы
       *[other] элементаў
    } з «{ $from }» у «{ $to }» ({ $progress })...
compressed =
    Сціснута { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    } з { $from } у { $to }
copy_noun = Капіяваць
creating = Стварэнне { $name } у { $parent }
created = Створана { $name } у { $parent }
copying =
    Капіяванне { $items } { $items ->
        [one] элемента
        [few] элементы
       *[other] элементаў
    } з «{ $from }» у «{ $to }» ({ $progress })...
copied =
    Скапіявана { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    } з { $from } у { $to }
deleting =
    Выдаленне { $items } { $items ->
        [one] элемента
        [few] элементы
       *[other] элементаў
    } са { trash } ({ $progress })...
deleted =
    Выдалена { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    } са { trash }
emptying-trash = Ачыстка { trash } ({ $progress })…
emptied-trash = Ачышчана { trash }
extracting =
    Выманне { $items } { $items ->
        [one] элемента
        [few] элементы
       *[other] элементаў
    } з «{ $from }» у «{ $to }» ({ $progress })...
extracted =
    Вынята { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    } з { $from } у { $to }
setting-executable-and-launching = Робім "{ $name }" выканальным і запускаем
set-executable-and-launched = "{ $name }" зроблены выканальным і запушчаны
setting-permissions = Усталёўваем дазволы для "{ $name }" на { $mode }
set-permissions = Дазволы для "{ $name }" усталяваны на { $mode }
moving =
    Перамяшчэнне { $items } { $items ->
        [one] элемента
        [few] элементы
       *[other] элементаў
    } з «{ $from }» у «{ $to }» ({ $progress })...
moved =
    Перанесена { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    } з { $from } у { $to }
permanently-deleting =
    Назаўсёды выдаляем { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    }
permanently-deleted =
    Назаўсёды выдалена { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    }
renaming = Перайменаванне { $from } у { $to }
renamed = Перайменавана { $from } у { $to }
restoring =
    Аднаўленне { $items } { $items ->
        [one] элемента
        [few] элементы
       *[other] элементаў
    } з { trash } ({ $progress })...
restored =
    Адноўлена { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    } з { trash }
unknown-folder = невядомая папка

## Open with

menu-open-with = Адкрыць праз...
default-app = { $name } (па змаўчанні)

## Show details

show-details = Паказаць дэталі
type = Тып: { $mime }
items = Элементаў: { $items }
item-size = Памер: { $size }
item-created = Створана: { $created }
item-modified = Зменена: { $modified }
item-accessed = Апошні доступ: { $accessed }
calculating = Вылічэнне...

## Settings

settings = Налады
single-click = Адзін клік каб адкрыць

### Appearance

appearance = Знешні выгляд
theme = Тэма
match-desktop = Як у сістэме
dark = Цёмная
light = Светлая

### Type to Search

type-to-search = Увядзіце для пошуку
type-to-search-recursive = Пошук у бягучай і ўкладзеных папках
type-to-search-enter-path = Увод шляху да каталога або файла
# Context menu
add-to-sidebar = Дадаць на бакавую панэль
compress = Сціснуць
delete-permanently = Выдаліць назаўжды
eject = Выняць
extract-here = Выняць
new-file = Новы файл...
new-folder = Новая папка...
open-in-terminal = Адкрыць у кансолі
move-to-trash = Перамясціць у сметніцу
restore-from-trash = Аднавіць са сметніцы
remove-from-sidebar = Выдаліць з бакавой панэлі
sort-by-name = Сартаваць па назве
sort-by-modified = Сартаваць па даце змянення
sort-by-size = Сартаваць па памеры
sort-by-trashed = Сартаваць па часе выдалення

## Desktop

change-wallpaper = Змяніць шпалеры...
desktop-appearance = Выгляд працоўнага стала...
display-settings = Налады дысплэя...

# Menu


## File

file = Файл
new-tab = Новая ўкладка
new-window = Новае акно
reload-folder = Абнавіць папку
rename = Перайменаваць...
close-tab = Закрыць укладку
quit = Выйсці

## Edit

edit = Рэдагаваць
cut = Выразаць
copy = Скапіяваць
paste = Уставіць
select-all = Вылучыць усё

## View

zoom-in = Павялічыць
default-size = Памер па змаўчанні
zoom-out = Паменшыць
view = Выгляд
grid-view = Рэжым сеткі
list-view = Рэжым спіса
show-hidden-files = Паказваць схаваныя файлы
list-directories-first = Размяшчаць папкі перад файламі
gallery-preview = Папярэдні прагляд
menu-settings = Налады...
menu-about = Пра Файлы COSMIC...

## Sort

sort = Сартаванне
sort-a-z = А-Я
sort-z-a = Я-А
sort-newest-first = Спачатку новыя
sort-oldest-first = Спачатку старыя
sort-smallest-to-largest = Ад меншага да найбольшага
sort-largest-to-smallest = Ад вялікага да найменшага
repository = Рэпазіторый
support = Падтрымка
progress-failed = { $percent }%, няўдала
removing-from-recents =
    Выдаленне { $items } { $items ->
        [one] элемента
        [few] элементы
       *[other] элементаў
    } з { recents }
removed-from-recents =
    Выдалена { $items } { $items ->
        [one] элемент
        [few] элементы
       *[other] элементаў
    } з { recents }
remove-from-recents = Выдаліць з нядаўніх


================================================
FILE: i18n/bg/cosmic_files.ftl
================================================
cosmic-files = Файлове на COSMIC
empty-folder = Празна папка
empty-folder-hidden = Празна папка (съдържа скрити елементи)
no-results = Няма намерени резултати
filesystem = Файлова система
home = Домашна папка
networks = Мрежи
notification-in-progress = Файлови операции са в процес на изпълнение.
trash = Кошче
recents = Скоро ползвани
undo = Отменяне
today = Днес
# Desktop view options
desktop-view-options = Опции за изглед на работния плот...
show-on-desktop = Покажи на работния плот
desktop-folder-content = Съдържание на папката на работния плот
mounted-drives = Монтирани устройства
trash-folder-icon = Иконка на кошчето
icon-size-and-spacing = Размер и разстояние между иконките
icon-size = Размер
grid-spacing = Разстояние
# List view
name = Име
modified = Променян
trashed-on = Изтрит
size = Размер
# Progress footer
details = Подробности
dismiss = Отмяна на съобщението
operations-running =
    { $running } { $running ->
        [one] операция се изпълнява
       *[other] операции се изпълняват
    } ({ $percent }%)...
operations-running-finished =
    { $running } { $running ->
        [one] операция се изпълнява
       *[other] операции се изпълняват
    } ({ $percent }%), { $finished } завършиха...
pause = Пауза
resume = Продължаване

# Dialogs


## Compress Dialog

create-archive = Създаване на архив

## Extract Dialog

extract-password-required = Необходима е парола
extract-to = Разархивиране в...
extract-to-title = Разархивиране в папка

## Empty Trash Dialog

empty-trash = Изпразване на кошчето
empty-trash-warning = Сигурни ли сте, че искате да изтриете завинаги всички елементи в кошчето?

## Mount Error Dialog

mount-error = Устройството не може да бъде достъпно

## New File/Folder Dialog

create-new-file = Създаване на нов файл
create-new-folder = Създаване на нова папка
file-name = Име на файла
folder-name = Име на папката
file-already-exists = Вече съществува файл с това име.
folder-already-exists = Вече съществува папка с това име.
name-hidden = Имената, започващи с „.“, ще бъдат скрити.
name-invalid = Името не може да бъде „{ $filename }“.
name-no-slashes = Името не може да съдържа наклонени черти.

## Open/Save Dialog

cancel = Отказване
create = Създаване
open = Отваряне
open-file = Отваряне на файл
open-folder = Отваряне на папка
open-in-new-tab = Отваряне в нов раздел
open-in-new-window = Отваряне в нов прозорец
open-item-location = Отваряне на местоположението на обекта
open-multiple-files = Отваряне на няколко файла
open-multiple-folders = Отваряне на няколко папки
save = Запазване
save-file = Запазване на файла

## Open With Dialog

open-with-title = Как искате да отворите „{ $name }“?
browse-store = Разгледайте { $store }
other-apps = Други програми
related-apps = Свързани програми

## Permanently delete Dialog

selected-items = избраните { $items } елемента
permanently-delete-question = Изтриване завинаги
delete = Изтриване
permanently-delete-warning = Сигурни ли сте, че искате да изтриете завинаги { $target }? Това действие не може да бъде върнато.

## Rename Dialog

rename-file = Преименуване на файла
rename-folder = Преименуване на папката

## Replace Dialog

replace = Заменяне
replace-title = „{ $filename }“ вече съществува на това местоположение.
replace-warning = Искате ли да го замените с този, който запазвате? Ако го замените, ще презапишете съдържанието му.
replace-warning-operation = Искате ли да го замените? Ако го замените, ще презапишете съдържанието му.
original-file = Съществуващ файл
replace-with = Замяна с
apply-to-all = Прилагане за всички
keep-both = Запазване на и двата
skip = Пропускане

## Set as Executable and Launch Dialog

set-executable-and-launch = Задаване като изпълним и стартиране
set-executable-and-launch-description = Искате ли да зададете „{ $name }“ като изпълним и да го стартирате?
set-and-launch = Задаване и стартиране

## Metadata Dialog

open-with = Отваряне с
owner = Собственик
group = Група
other = Друго

### Mode 0

none = Без

### Mode 1 (unusual)

execute-only = Само за изпълняване

### Mode 2 (unusual)

write-only = Само за записване

### Mode 3 (unusual)

write-execute = Записване и изпълняване

### Mode 4

read-only = Само за четене

### Mode 5

read-execute = Четене и изпълняване

### Mode 6

read-write = Четене и записване

### Mode 7

read-write-execute = Четене, записване и изпълняване

## Favorite Path Error Dialog

favorite-path-error = Грешка при отваряне на папката
favorite-path-error-description =
    Местоположението „{ $path }“ не може да бъде отворено.
    Възможно е да не съществува или да нямате права да го отворите.

    Искате ли да го премахнете от страничната лента?
remove = Премахване
keep = Запазване

# Context Pages


## About

repository = Хранилище
support = Поддръжка

## Add Network Drive

add-network-drive = Добавяне на мрежово устройство
connect = Свързване
connect-anonymously = Свързване анонимно
connecting = Свързване...
domain = Домейн
enter-server-address = Въведете адрес на сървър
network-drive-description =
    Адресите на сървърите включват представка на протокола и адрес.
    Примери: ssh://192.168.0.1, ftp://[2001:db8::1]

### Make sure to keep the comma which separates the columns

network-drive-schemes =
    Налични протоколи,Представка
    AppleTalk,afp://
    Протокол за пренос на файлове,ftp:// или ftps://
    Мрежова файлова система,nfs://
    Server Message Block,smb://
    Пренос на файлове по SSH,sftp:// или ssh://
    WebDav,dav:// или davs://
network-drive-error = Мрежовото устройство не може да бъде достъпно
password = Парола
remember-password = Запомняне на паролата
try-again = Опитайте отново
username = Потребителско име

## Operations

cancelled = Отменена
edit-history = Редактиране на историята
history = История
no-history = Няма елементи в историята.
pending = Чакащи
progress = { $percent }%
progress-cancelled = { $percent }%, отменена
progress-failed = { $percent }%, неуспешно
progress-paused = { $percent }%, на пауза
failed = Неуспешна
complete = Завършена
compressing =
    Компресиране на { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от „{ $from }“ в „{ $to }“ ({ $progress })...
compressed =
    Компресирано е { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от „{ $from }“ в „{ $to }“
copy_noun = Копиране
creating = Създаване на „{ $name }“ в „{ $parent }“
created = „{ $name }“ е създадено в „{ $parent }“
copying =
    Копиране на { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от „{ $from }“ в „{ $to }“ ({ $progress })...
copied =
    Копирано е { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от „{ $from }“ в „{ $to }“
deleting =
    Изтриване на { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от { trash } ({ $progress })...
deleted =
    Изтрито е { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от { trash }
emptying-trash = Изпразване на { trash } ({ $progress })...
emptied-trash = { trash } е изпразнено
extracting =
    Извличане на { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от „{ $from }“ в „{ $to }“ ({ $progress })...
extracted =
    Извлечено е { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от „{ $from }“ в „{ $to }“
setting-executable-and-launching = Задаване на „{ $name }“ като изпълним и стартиране
set-executable-and-launched = „{ $name }“ е зададен като изпълним и е стартиран
setting-permissions = Задаване на правата за { $name }" на { $mode }
set-permissions = Правата за "{ $name }" бяха зададени на { $mode }
moving =
    Преместване на { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от „{ $from }“ в „{ $to }“ ({ $progress })...
moved =
    Преместено е { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от „{ $from }“ в „{ $to }“
permanently-deleting =
    Изтриване завинаги на { $items } { $items ->
        [one] елемент
       *[other] елемента
    }
permanently-deleted =
    Изтрито е завинаги { $items } { $items ->
        [one] елемент
       *[other] елемента
    }
removing-from-recents =
    Премахване на { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от { recents }
removed-from-recents =
    Премахнато е { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от { recents }
renaming = Преименуване на „{ $from }“ на „{ $to }“
renamed = „{ $from }“ е преименувано на „{ $to }“
restoring =
    Възстановяване на { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от { trash } ({ $progress })...
restored =
    Възстановено е { $items } { $items ->
        [one] елемент
       *[other] елемента
    } от { trash }
unknown-folder = неизвестна папка

## Open with

menu-open-with = Отваряне с...
default-app = { $name } (стандартно)

## Show details

show-details = Показване на подробностите
type = Вид: { $mime }
items = Елементи: { $items }
item-size = Размер: { $size }
item-created = Създаден: { $created }
item-modified = Променян: { $modified }
item-accessed = Достъпен: { $accessed }
calculating = Изчисляване...

## Settings

settings = Настройки
single-click = Отваряне с едно натискане

### Appearance

appearance = Външен вид
theme = Тема
match-desktop = Системна тема
dark = Тъмна тема
light = Светла тема

### Type to Search

type-to-search = Въведете текст за търсене
type-to-search-recursive = Търсене в текущата папка и всички подпапки
type-to-search-enter-path = Въвежда пътя до папката или файла
# Context menu
add-to-sidebar = Добавяне към страничната лента
compress = Компресиране
delete-permanently = Изтриване завинаги
eject = Изваждане
extract-here = Разархивиране
new-file = Нов файл...
new-folder = Нова папка...
open-in-terminal = Отваряне в терминала
move-to-trash = Преместване в кошчето
restore-from-trash = Възстановяване от кошчето
remove-from-sidebar = Премахване от стр. лента
sort-by-name = Подреждане по име
sort-by-modified = Подреждане по дата на променяне
sort-by-size = Подреждане по размер
sort-by-trashed = Подреждане по дата на изтриване
remove-from-recents = Премахване от скорошни

## Desktop

change-wallpaper = Променяне на фона...
desktop-appearance = Външен вид на работния плот...
display-settings = Настройки на екрана...

# Menu


## File

file = Файл
new-tab = Нов подпрозорец
new-window = Нов прозорец
reload-folder = Презареждане на папката
rename = Преименуване...
close-tab = Затваряне на подпрозореца
quit = Спиране на програмата

## Edit

edit = Редактиране
cut = Отрязване
copy = Копиране
paste = Поставяне
select-all = Избор на всички

## View

zoom-in = Увеличаване
default-size = Стандартен размер
zoom-out = Намаляване
view = Изглед
grid-view = Изглед като решетка
list-view = Изглед като списък
show-hidden-files = Показване на скритите файлове
list-directories-first = Изброяване първо на папките
gallery-preview = Изглед като галерия
menu-settings = Настройки...
menu-about = Относно „Файлове на COSMIC“...

## Sort

sort = Подреждане
sort-a-z = А→Я
sort-z-a = Я→А
sort-newest-first = Най-новите първи
sort-oldest-first = Най-старите първи
sort-smallest-to-largest = Най-малките до най-големите
sort-largest-to-smallest = Най-големите до най-малките


================================================
FILE: i18n/bn/cosmic_files.ftl
================================================


================================================
FILE: i18n/ca/cosmic_files.ftl
================================================
cosmic-files = Fitxers del COSMIC
empty-folder = Carpeta buida
empty-folder-hidden = Carpeta buida (té elements ocults)
no-results = No s'ha trobat cap resultat
filesystem = Sistema de fitxers
home = Inici
networks = Xarxes
notification-in-progress = Hi ha operacions amb fitxers en curs.
trash = Paperera
recents = Recents
undo = Desfés
today = Avui
# Desktop view options
desktop-view-options = Opcions de visualització de l'escriptori
show-on-desktop = Mostra a l'escriptori
desktop-folder-content = Contingut de la carpeta de l'escriptori
mounted-drives = Unitats muntades
trash-folder-icon = Icona de la paperera
icon-size-and-spacing = Mida i espaiat de les icones
icon-size = Mida de les icones
grid-spacing = Espaiat de la quadrícula
# List view
name = Nom
modified = Modificat
trashed-on = Mogut a la paperera
size = Mida
# Progress footer
details = Detalls
dismiss = Descarta el missatge
operations-running =
    { $running } { $running ->
        [one] operacion
       *[other] operacions
    } en curs ({ $percent }%)...
operations-running-finished =
    { $running }{ $running ->
        [one] operacion
       *[other] operacions
    } en curs ({ $percent }%), { $finished } acabat...
pause = Pausa
resume = Reprèn

# Dialogs


## Compress Dialog

create-archive = Crea un arxiu

## Extract Dialog

extract-password-required = Cal una contrasenya

## Empty Trash Dialog

empty-trash = Buida la paperera
empty-trash-warning = Voleu suprimir permanentment tots els fitxers de la paperera?

## Mount Error Dialog

mount-error = No es pot accedir a la unitat

## New File/Folder Dialog

create-new-file = Crea un nou fitxer
create-new-folder = Crea una nova carpeta
file-name = Nom del fixer
folder-name = Nom de la carpeta
file-already-exists = Ja existeix un fitxer amb aquest nom.
folder-already-exists = Ja existeix una carpeta amb aquest nom.
name-hidden = Els noms que comencin amb "." seran ocults.
name-invalid = El nom no pot ser "{ $filename }".
name-no-slashes = El nom no pot contenir barres.

## Open/Save Dialog

cancel = Cancel·la
create = Crea
open = Obre
open-file = Obre el fixer
open-folder = Obre la carpeta
open-in-new-tab = Obre en una pestanya nova
open-in-new-window = Obre en una finestra nova
open-item-location = Obre la ubicació del fitxer
open-multiple-files = Obre múltiples fitxers
open-multiple-folders = Obre múltiples carpetes
save = Desa
save-file = Desa el fitxer

## Open With Dialog

open-with-title = Com voleu obrir "{ $name }"?
browse-store = Navega { $store }

## Rename Dialog

rename-file = Canvia el nom del fitxer
rename-folder = Canvia el nom de la carpeta

## Replace Dialog

replace = Reemplaça
replace-title = Ja existeix "{ $filename }" en aquesta ubicació.
replace-warning = Voleu reemplaçar-lo pel fitxer que esteu desant? El seu contingut serà sobreescrit.
replace-warning-operation = Voleu reemplaçar-lo? El seu contingut serà sobreescrit.
original-file = Fitxer original
replace-with = Reemplaça amb
apply-to-all = Aplica-ho a tot
keep-both = Mantén els dos
skip = Omet

## Set as Executable and Launch Dialog

set-executable-and-launch = Defineix com a executable i executa
set-executable-and-launch-description = Voleu definir "{ $name }" com a executable i executar-lo?
set-and-launch = Defineix i executa

## Metadata Dialog

open-with = Obre amb
owner = Propietari
group = Grup
other = Altre

### Mode 0

none = Cap

### Mode 1 (unusual)

execute-only = Només executar

### Mode 2 (unusual)

write-only = Només escriure

### Mode 3 (unusual)

write-execute = Escriure i executar

### Mode 4

read-only = Només llegir

### Mode 5

read-execute = Llegir i executar

### Mode 6

read-write = Llegir i escriure

### Mode 7

read-write-execute = Llegir, escriure i executar

# Context Pages


## About


## Add Network Drive

add-network-drive = Afegeix una unitat de la xarxa
connect = Connecta
connect-anonymously = Connecta anònimament
connecting = Connectant...
domain = Domini
enter-server-address = Introduïu l'adreça del servidor
network-drive-description =
    Les adreces de servidor estan formades per un prefix del protocol i una adreça.
    Examples: ssh://192.168.0.1, ftp://[2001:db8::1]

### Make sure to keep the comma which separates the columns

network-drive-schemes =
    Protocols disponibles,Prefix
    AppleTalk,afp://
    File Transfer Protocol,ftp:// or ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// or ssh://
    WebDav,dav:// or davs://
network-drive-error = No s'ha pogut accedir a la unitat de la xarxa
password = Contrasenya
remember-password = Recorda la contrasenya
try-again = Torna-ho a provar
username = Nom d'usuari

## Operations

cancelled = Cancel·lat
edit-history = Edita l'historial
history = Historial
no-history = Historial buit.
pending = Pendent
progress = { $percent }%
progress-cancelled = { $percent }%, cancel·lat
progress-paused = { $percent }%, en pausa
failed = Ha fallat
complete = Complet
compressing =
    { $items ->
        [one] S'està comprimint { $items } element
       *[other] S'estan comprimint { $items } elements
    } de "{ $from }" a "{ $to }" ({ $progress })...
compressed =
    { $items ->
        [one] S'ha comprimit { $items } element
       *[other] S'han comprimit { $items } elements
    } de "{ $from }" a "{ $to }"
copy_noun = Copia
creating = S'està creant "{ $name }" a "{ $parent }"
created = S'ha creat "{ $name }" a "{ $parent }"
copying =
    { $items ->
        [one] S'està copiant { $items } element
       *[other] S'estan copiant { $items } elements
    } de "{ $from }" a "{ $to }" ({ $progress })...
copied =
    { $items ->
        [one] S'ha copiat { $items } element
       *[other] S'han copiat { $items } elements
    } de "{ $from }" a "{ $to }"
emptying-trash = S'està buidant { trash } ({ $progress })...
emptied-trash = S'ha buidat { trash }
extracting =
    { $items ->
        [one] S'està extraient { $items } element
       *[other] S'estan extraient { $items } elements
    } de "{ $from }" a "{ $to }" ({ $progress })...
extracted =
    { $items ->
        [one] S'ha extret { $items } element
       *[other] S'han extret { $items } elements
    } de "{ $from }" a "{ $to }"
setting-executable-and-launching = S'està definint "{ $name }" com a executable i executant
set-executable-and-launched = S'ha definit "{ $name }" com a executable i executat
moving =
    { $items ->
        [one] S'està movent { $items } element
       *[other] S'estan movent { $items } elements
    } de "{ $from }" a "{ $to }" ({ $progress })...
moved =
    { $items ->
        [one] S'ha mogut { $items } element
       *[other] S'han mogut { $items } elements
    } de "{ $from }" a "{ $to }"
renaming = S'està canviant el nom de "{ $from }" a "{ $to }"
renamed = S'ha canviat el nom de "{ $from }" a "{ $to }"
restoring =
    { $items ->
        [one] S'està restaurant { $items } element
       *[other] S'estan restaurant { $items } elements
    } de { trash } ({ $progress })...
restored =
    { $items ->
        [one] S'ha restaurat { $items } element
       *[other] S'han restaurat { $items } elements
    } de { trash }
unknown-folder = carpeta desconeguda

## Open with

menu-open-with = Obre amb...
default-app = { $name } (per defecte)

## Show details

show-details = Mostra els detalls
type = Tipus: { $mime }
items = Elements: { $items }
item-size = Mida: { $size }
item-created = Creat: { $created }
item-modified = Modificat: { $modified }
item-accessed = Accedit: { $accessed }
calculating = S'està calculant...

## Settings

settings = Configuració

### Appearance

appearance = Aparença
theme = Tema
match-desktop = Coincideix amb l'escriptori
dark = Fosc
light = Clar
# Context menu
add-to-sidebar = Afegeix a la barra lateral
compress = Comprimeix
extract-here = Extreu
new-file = Nou fitxer...
new-folder = Nova carpeta...
open-in-terminal = Obre al terminal
move-to-trash = Mou a la paperera
restore-from-trash = Restaura de la paperera
remove-from-sidebar = Elimina de la barra lateral
sort-by-name = Ordena per nom
sort-by-modified = Ordena per data de modificació
sort-by-size = Ordena per mida
sort-by-trashed = Ordena per data de supressió

## Desktop

change-wallpaper = Canvia el fons de pantalla...
desktop-appearance = Aparença de l'escriptori...
display-settings = Configuració de visualització...

# Menu


## File

file = Fitxer
new-tab = Pestanya nova
new-window = Finestra nova
rename = Canvia el nom...
close-tab = Tanca la pestanya
quit = Surt

## Edit

edit = Edita
cut = Retalla
copy = Copia
paste = Enganxa
select-all = Selecciona-ho tot

## View

zoom-in = Amplia
default-size = Mida predeterminada
zoom-out = Redueix
view = Visualització
grid-view = Vista de graella
list-view = Vista de llista
show-hidden-files = Mostra els fitxers ocults
list-directories-first = Mostra els directoris primer
gallery-preview = Vista prèvia en galeria
menu-settings = Configuració...
menu-about = Quant a Fitxers del COSMIC...

## Sort

sort = Ordena
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = Primer més recents
sort-oldest-first = Primer més antics
sort-smallest-to-largest = De petit a gran
sort-largest-to-smallest = De gran a petit


================================================
FILE: i18n/cs/cosmic_files.ftl
================================================
cosmic-files = Soubory COSMIC
comment = Správce souborů pro prostředí COSMIC
keywords = Složka;Složky;Správce;Manažer;Prohlížeč;
empty-folder = Složka je prázdná
empty-folder-hidden = Složka je prázdná (obsahuje skryté položky)
filesystem = Souborový systém
home = Domů
recents = Nedávné
trash = Koš
# List view
name = Název
modified = Datum změny
size = Velikost

# Dialogs


## Empty Trash Dialog

empty-trash = Vysypat koš
empty-trash-warning = Položky v koši budou trvale smazány

## New File/Folder Dialog

create-new-file = Vytvořit nový soubor
create-new-folder = Vytvořit novou složku
file-name = Název souboru
folder-name = Název složky
file-already-exists = Již existuje soubor s daným názvem
folder-already-exists = Již existuje složka s daným názvem
name-hidden = Položky s názvem začínajícím tečkou budou skryty
name-invalid = Název nemůže být „{ $filename }“
name-no-slashes = Název nesmí obsahovat lomítka

## Open/Save Dialog

cancel = Zrušit
open = Otevřít
open-file = Otevřít soubor
open-folder = Otevřít složku
open-in-new-tab = Otevřít na nové kartě
open-in-new-window = Ovevřít v novém okně
open-multiple-files = Otevřít více souborů
open-multiple-folders = Otevřít více složek
save = Uložit
save-file = Uložit soubor

## Rename Dialog

rename-file = Přejmenovat soubor
rename-folder = Přejmenovat složku

## Replace Dialog

replace = Nahradit
replace-title = Soubor „{ $filename }“ již na daném místě existuje
replace-warning = Chcete nahradit soubor tím, který ukládáte? Nahrazení přepíše veškerý jeho obsah.

# Context Pages


## About


## Operations

pending = Nevyřízené
failed = Neúspěšné
complete = Dokončené
copy_noun = Kopie

## Open with

menu-open-with = Otevřít pomocí...
default-app = { $name } (výchozí)

## Properties


## Settings

settings = Nastavení

### Appearance

appearance = Vzhled
theme = Motiv
match-desktop = Podle systému
dark = Tmavý
light = Světlý
# Context menu
add-to-sidebar = Přidat do postranního panelu
new-file = Nový soubor...
new-folder = Nová složka...
open-in-terminal = Otevřít v terminálu
move-to-trash = Přesunout do koše
restore-from-trash = Obnovit z koše
remove-from-sidebar = Odstranit z postranního panelu
sort-by-name = Seřadit podle názvu
sort-by-modified = Seřadit podle data změny
sort-by-size = Seřadit podle velikosti

# Menu


## File

file = Soubor
new-tab = Nová karta
new-window = Nové okno
rename = Přejmenovat...
close-tab = Zavřít kartu
quit = Ukončit

## Edit

edit = Úpravy
cut = Vyjmout
copy = Kopírovat
paste = Vložit
select-all = Vybrat vše

## View

zoom-in = Přiblížit
default-size = Výchozí velikost
zoom-out = Oddálit
view = Zobrazení
grid-view = Zobrazit jako mřížku
list-view = Zobrazit jako seznam
show-hidden-files = Zobrazit skryté soubory
list-directories-first = Řadit nejprve složky
menu-settings = Nastavení...
menu-about = O aplikaci Soubory COSMIC...
no-results = Nenalezeny žádné výsledky
repository = Repozitář
support = Podpora
networks = Sítě
notification-in-progress = Probíhají operace se soubory
undo = Vrátit
connect = Připojit
today = Dnes
desktop-view-options = Možnosti zobrazení plochy...
show-on-desktop = Zobrazit na ploše
desktop-folder-content = Obsah složky na ploše
mounted-drives = Připojené disky
trash-folder-icon = Ikona koše
icon-size = Velikost ikony
password = Heslo
remove = Odstranit
username = Uživatelské jméno
details = Podrobnosti
pause = Pozastavit
resume = Pokračovat
create-archive = Vytvořit archiv
extract-password-required = Vyžadováno heslo
extract-to = Rozbalit do...
extract-to-title = Rozbalit do složky
mount-error = Nelze přistoupit k disku
create = Vytvořit
open-item-location = Otevřít umístění položky
open-with-title = Jak chcete otevřít „{ $name }“?
browse-store = Procházet { $store }
other-apps = Ostatní aplikace
related-apps = Související aplikace
permanently-delete-question = Trvale smazat?
delete = Smazat
permanently-delete-warning = Dojde k trvalému smazání { $target }. Tuto akci nelze vrátit.
replace-warning-operation = Chcete soubor nahradit? Nahrazení přepíše veškerý jeho obsah.
original-file = Původní soubor
replace-with = Nahradit za
keep-both = Ponechat oba
skip = Přeskočit
set-executable-and-launch = Povolit spouštění a spustit
set-executable-and-launch-description = Chcete povolit spouštění souboru „{ $name }“ a následně ho spustit?
set-and-launch = Povolit a spustit
open-with = Otevřít pomocí
other = Ostatní
none = Žádné
icon-size-and-spacing = Velikost a rozestupy ikon
grid-spacing = Rozestupy mřížky
deleting =
    Mazání { $items } { $items ->
        [one] položky
       *[other] položek
    } z koše ({ $progress })...
sort-by-trashed = Seřadit podle času smazání
deleted =
    { $items ->
        [one] Smazána
        [few] Smazány
       *[other] Smazáno
    } { $items } { $items ->
        [one] položka
        [few] položky
       *[other] položek
    } z koše
emptying-trash = Vysypávání koše ({ $progress })...
emptied-trash = Koš vysypán
restoring =
    Obnovování { $items } { $items ->
        [one] položky
       *[other] položek
    } z koše ({ $progress })...
restored =
    { $items ->
        [one] Obnovena
        [few] Obnoveny
       *[other] Obnoveno
    } { $items } { $items ->
        [one] položka
        [few] položky
       *[other] položek
    } z koše
permanently-deleted =
    Trvale { $items ->
        [one] smazána
        [few] smazány
       *[other] smazáno
    } { $items } { $items ->
        [one] položka
        [few] položky
       *[other] položek
    }
delete-permanently = Smazat trvale
trashed-on = Smazáno
dismiss = Zavřít zprávu
operations-running =
    Běží { $running } { $running ->
        [one] operace
        [few] operace
       *[other] operací
    } ({ $percent }%)...
operations-running-finished =
    Běží { $running } { $running ->
        [one] operace
        [few] operace
       *[other] operací
    } ({ $percent }%), { $finished } { $finished ->
        [one] dokončena...
        [few] dokončeny...
       *[other] dokončeno...
    }
apply-to-all = Použít na vše
owner = Vlastník
group = Skupina
execute-only = Pouze spouštění
write-only = Pouze zápis
write-execute = Zápis a spouštění
read-only = Pouze čtení
add-network-drive = Přidat síťový disk
connect-anonymously = Připojit se anonymně
connecting = Připojování...
domain = Doména
enter-server-address = Zadejte adresu serveru
network-drive-description =
    Adresy serveru obsahují prefix protokolu a adresu.
    Příklady: ssh://192.168.0.1, ftp://[2001:db8::1]
network-drive-schemes =
    Dostupné protokoly,Prefix
    AppleTalk,afp://
    File Transfer Protocol,ftp:// nebo ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// nebo ssh://
    WebDAV,dav:// nebo davs://
network-drive-error = Nelze přistoupit k síťovému disku
remember-password = Zapamatovat heslo
try-again = Zkusit znovu
cancelled = Zrušené
edit-history = Historie úprav
history = Historie
no-history = Žádné položky v historii.
progress = { $percent }%
progress-cancelled = { $percent }%, zrušeno
progress-failed = { $percent }%, selhalo
progress-paused = { $percent }%, pozastaveno
keep = Ponechat
compressing =
    Balení { $items } { $items ->
        [one] položky
       *[other] položek
    } z „{ $from }“ do „{ $to }“ ({ $progress })...
compressed =
    { $items ->
        [one] Zabalena
        [few] Zabaleny
       *[other] Zabaleno
    } { $items } { $items ->
        [one] položka
        [few] položky
       *[other] položek
    } z „{ $from }“ do „{ $to }“
creating = Vytváření položky „{ $name }“ v „{ $parent }“
created = Vytvořena položka „{ $name }“ v „{ $parent }“
copying =
    Kopírování { $items } { $items ->
        [one] položky
       *[other] položek
    } z „{ $from }“ do „{ $to }“ ({ $progress })...
copied =
    { $items ->
        [one] Zkopírována
        [few] Zkopírovány
       *[other] Zkopírováno
    } { $items } { $items ->
        [one] položka
        [few] položky
       *[other] položek
    } z „{ $from }“ do „{ $to }“
extracting =
    Rozbalování { $items } { $items ->
        [one] položky
       *[other] položek
    } z „{ $from }“ do „{ $to }“ ({ $progress })...
favorite-path-error-description =
    Nelze otevřít „{ $path }“
    „{ $path }“ buď neexistuje nebo nemáte dostatečná práva pro otevření

    Chcete položku odstranit z postranního panelu?
selected-items = { $items } vybraných položek
read-execute = Čtení a spouštění
read-write-execute = Čtení, zápis a spouštění
read-write = Čtení a zápis
favorite-path-error = Chyba otevírání složky
extracted =
    { $items ->
        [one] Rozbalena
        [few] Rozbaleny
       *[other] Rozbaleno
    } { $items } { $items ->
        [one] položka
        [few] položky
       *[other] položek
    } z „{ $from }“ do „{ $to }“
setting-executable-and-launching = Nastavování souboru „{ $name }“ jako spustitelného a spouštění
set-executable-and-launched = Soubor „{ $name }“ nastaven jako spustitelný a spuštěn
setting-permissions = Nastavování práv položky „{ $name }“ na { $mode }
set-permissions = Práva položky „{ $name }“ nastavena na { $mode }
moving =
    Přesouvání { $items } { $items ->
        [one] položky
       *[other] položek
    } z „{ $from }“ do „{ $to }“ ({ $progress })...
moved =
    { $items ->
        [one] Přesunuta
        [few] Přesunuty
       *[other] Přesunuto
    } { $items } { $items ->
        [one] položka
        [few] položky
       *[other] položek
    } z „{ $from }“ do „{ $to }“
permanently-deleting =
    Trvalé mazání { $items } { $items ->
        [one] položky
       *[other] položek
    }
removing-from-recents =
    Odstraňování { $items } { $items ->
        [one] položky
       *[other] položek
    } z { recents }
removed-from-recents =
    { $items ->
        [one] Odstraněna
        [few] Odstraněny
       *[other] Odstraněno
    } { $items } { $items ->
        [one] položka
        [few] položky
       *[other] položek
    } z { recents }
remove-from-recents = Odstranit z nedávných
renaming = Přejmenování „{ $from }“ na „{ $to }“
renamed = Přejmenováno „{ $from }“ na „{ $to }“
unknown-folder = neznámá složka
show-details = Zobrazit podrobnosti
type = Typ: { $mime }
items = Položky: { $items }
item-size = Velikost: { $size }
item-created = Vytvořeno: { $created }
item-modified = Změněno: { $modified }
item-accessed = Poslední přístup: { $accessed }
calculating = Vypočítávání...
single-click = Otevřít jedním kliknutím
type-to-search = Vyhledávání psaním
type-to-search-recursive = Prohledává aktuální složku a její podsložky
type-to-search-enter-path = Zadává cestu ke složce nebo souboru
compress = Zabalit...
eject = Vysunout
extract-here = Rozbalit
change-wallpaper = Změnit tapetu...
desktop-appearance = Vzhled plochy...
display-settings = Nastavení obrazovky...
reload-folder = Znovu načíst složku
sort-z-a = Z-A
sort-newest-first = Nejnovější první
sort-oldest-first = Nejstarší první
sort-smallest-to-largest = Od nejmenšího po největší
sort-largest-to-smallest = Od největšího po nejmenší
gallery-preview = Náhled galerie
sort = Řazení
sort-a-z = A-Z
empty-trash-title = Vysypat koš?
type-to-search-select = Vybere první shodující se soubor nebo složku
pasted-image = Vložený obrázek
pasted-text = Vložený text
pasted-video = Vložené video
copy-to-button-label = Kopírovat
move-to-button-label = Přesunout
copy-to = Kopírovat do...
move-to = Přesunout do...
copy-to-title = Vyberte cíl kopírování
move-to-title = Vyberte cíl přesunutí
show-recents = Složka „Nedávné“ v postranním panelu
copy-path = Kopírovat cestu
clear-recents-history = Vymazat historii „Nedávné“
mixed = Různé


================================================
FILE: i18n/da/cosmic_files.ftl
================================================
cosmic-files = COSMIC Filer
empty-folder = Tom mappe
empty-folder-hidden = Tom mappe (har skjulte filer)
no-results = Ingen resultater
filesystem = Filsystem
home = Hjem
networks = Netværk
notification-in-progress = Filoperationer er igangværende.
trash = Skraldespand
recents = Seneste
undo = Fortryd
today = I dag
# Desktop view options
desktop-view-options = Indstillinger for skrivebordsudseende...
show-on-desktop = Vis på Skrivebordet
desktop-folder-content = Indhold på Skrivebordet
mounted-drives = Monterede drev
trash-folder-icon = Skraldespandsikon
icon-size-and-spacing = Ikonstørrelse og afstand
icon-size = Ikonstørrelse
# List view
name = Navn
modified = Ændret
trashed-on = Smidt ud
size = Størrelse
# Progress footer
details = Detaljer
dismiss = Afvis besked
operations-running = { $running } operationer er i gang ({ $percent }%)...
operations-running-finished = { $running } operationer er i gang ({ $percent }%), { $finished } færdiggjort...
pause = Pause
resume = Fortsæt

# Dialogs


## Compress Dialog

create-archive = Opret arkiv

## Empty Trash Dialog

empty-trash = Tøm skraldespand
empty-trash-warning = Er du sikker på du vil slette alle objekter i Skraldespanden permanent?

## Mount Error Dialog

mount-error = Kan ikke tilgå drev

## New File/Folder Dialog

create-new-file = Opret ny fil
create-new-folder = Opret ny mappe
file-name = Filnavn
folder-name = Mappenavn
file-already-exists = En fil med det navn eksisterer allerede.
folder-already-exists = En mappe med det navn eksisterer allerede.
name-hidden = Navne begyndende med "." vil blive skjult.
name-invalid = Navn kan ikke være "{ $filename }".
name-no-slashes = Navn kan ikke indeholde skråstreg.

## Open/Save Dialog

cancel = Annullér
create = Opret
open = Åbn
open-file = Åbn fil
open-folder = Åbn mappe
open-in-new-tab = Åbn i ny fane
open-in-new-window = Åbn i nyt vindue
open-item-location = Åbn placering for objekt
open-multiple-files = Åbn flere filer
open-multiple-folders = Åbn flere mapper
save = Gem
save-file = Gem fil

## Open With Dialog

open-with-title = Hvordan vil du åbne "{ $name }"?
browse-store = Gennemse { $store }

## Rename Dialog

rename-file = Omdøb fil
rename-folder = Omdøb mappe

## Replace Dialog

replace = Erstat
replace-title = "{ $filename }" eksisterer allerede på denne placering.
replace-warning = Vil du erstatte den med den du er ved at gemme? Hvis du erstatter den, overskriver du dens indhold.
replace-warning-operation = Vil du erstatte den? Hvis du erstatter den, overskriver du dens indhold.
original-file = Original fil
replace-with = Erstat med
apply-to-all = Anvend for alle
keep-both = Behold begge
skip = Spring over

## Set as Executable and Launch Dialog

set-executable-and-launch = Indstil som eksekverbar fil og start
set-executable-and-launch-description = Vil du indstille "{ $name }" som en eksekverbar fil og starte den?
set-and-launch = Indstil og start

## Metadata Dialog

owner = Ejer
group = Gruppe
other = Andet

# Context Pages


## About


## Add Network Drive

add-network-drive = Tilføj netværksdrev
connect = Opret forbindelse
connect-anonymously = Opret forbindelse anonymt
connecting = Opretter forbindelse...
domain = Domæne
enter-server-address = Indtast serveradresse
network-drive-description =
    Server-adresser inkluderer et protokolpræfiks og adresse.
    Eksempler: ssh://192.168.0.1, ftp://[2001:db8::1]

### Make sure to keep the comma which separates the columns

network-drive-schemes =
    Tilgængelige protokoller,Præfiks
    AppleTalk,afp://
    File Transfer Protocol,ftp:// or ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// or ssh://
    WebDav,dav:// or davs://
network-drive-error = Kan ikke tilgå netværksdrev
password = Adgangskode
remember-password = Husk adgangskode
try-again = Forsøg igen
username = Brugernavn

## Operations

cancelled = Annulleret
edit-history = Redigér historie
history = Historie
no-history = Ingen historik.
pending = Afventer
progress = { $percent }%
progress-cancelled = { $percent }%, annulleret
progress-paused = { $percent }%, sat på pause
failed = Mislykkedes
complete = Færdigt
compressing =
    Komprimerer { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra "{ $from }" til "{ $to }" ({ $progress })...
compressed =
    Komprimeret { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra "{ $from }" til "{ $to }"
copy_noun = Kopi
creating = Opretter "{ $name }" i "{ $parent }"
created = Oprettet "{ $name }" i "{ $parent }"
copying =
    Kopierer { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra "{ $from }" til "{ $to }" ({ $progress })...
copied =
    Kopieret { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra "{ $from }" til "{ $to }"
emptying-trash = Tømmer { trash } ({ $progress })...
emptied-trash = Tømt { trash }
extracting =
    Udpakker { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra "{ $from }" til "{ $to }" ({ $progress })...
extracted =
    Udpakket { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra "{ $from }" til "{ $to }"
setting-executable-and-launching = Indstiller "{ $name }" som eksekverbar fil og starter
set-executable-and-launched = Indstillet "{ $name }" som eksekverbar fil og startet
moving =
    Flytter { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra "{ $from }" til "{ $to }" ({ $progress })...
moved =
    Flyttet { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra "{ $from }" til "{ $to }"
renaming = Omdøber "{ $from }" til "{ $to }"
renamed = Omdøbt "{ $from }" til "{ $to }"
restoring =
    Genopretter { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra { trash } ({ $progress })...
restored =
    Genoprettet { $items } { $items ->
        [one] objekt
       *[other] objekter
    } fra { trash }
unknown-folder = ukendt mappe

## Open with

menu-open-with = Åbn med...
default-app = { $name } (standardindstilling)

## Show details

show-details = Vis detaljer
type = Type: { $mime }
items = Objekter: { $items }
item-size = Størrelse: { $size }
item-created = Oprettet: { $created }
item-modified = Ændret: { $modified }
item-accessed = Tilgået: { $accessed }
calculating = Beregner...

## Settings

settings = Indstillinger

### Appearance

appearance = Udseende
theme = Tema
match-desktop = Match skrivebord
dark = Mørk
light = Lys
# Context menu
add-to-sidebar = Tilføj til sidebjælke
compress = Komprimér
extract-here = Extract
new-file = Ny fil...
new-folder = Ny mappe...
open-in-terminal = Åbn i terminal
move-to-trash = Flyt til skraldespand
restore-from-trash = Genopret fra skraldespand
remove-from-sidebar = Fjern fra sidebjælke
sort-by-name = Sortér efter navn
sort-by-modified = Sortér efter ændret
sort-by-size = Sortér efter størrelse
sort-by-trashed = Sortér efter sletningsdato

## Desktop

change-wallpaper = Skift baggrundsbillede...
desktop-appearance = Skrivebordsudseende...
display-settings = Skærmindstillinger...

# Menu


## File

file = Fil
new-tab = Ny fane
new-window = Nyt vindue
rename = Omdøb...
close-tab = Luk fane
quit = Afslut

## Edit

edit = Redigér
cut = Klip
copy = Kopiér
paste = Sæt ind
select-all = Vælg alt

## View

zoom-in = Zoom ind
default-size = Standardstørrelse
zoom-out = Zoom ud
view = Visning
grid-view = Gitter-visning
list-view = Liste-visning
show-hidden-files = Vis skjulte filer
list-directories-first = List mapper først
gallery-preview = Galleri-forhåndsvisning
menu-settings = Indstillinger...
menu-about = Om COSMIC Filer...

## Sort

sort = Sortér
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = Nyeste først
sort-oldest-first = Ældste først
sort-smallest-to-largest = Mindste til største
sort-largest-to-smallest = Største til mindste


================================================
FILE: i18n/de/cosmic_files.ftl
================================================
cosmic-files = COSMIC Dateien
empty-folder = Leerer Ordner
empty-folder-hidden = Leerer Ordner (hat versteckte Elemente)
no-results = Keine Ergebnisse gefunden
filesystem = Dateisystem
home = Benutzerordner
networks = Netzwerke
notification-in-progress = Dateivorgänge werden ausgeführt
trash = Papierkorb
recents = Zuletzt verwendet
undo = Rückgängig
today = Heute
# Optionen für die Desktop-Ansicht
desktop-view-options = Optionen für die Desktop-Ansicht…
show-on-desktop = Auf Desktop anzeigen
desktop-folder-content = Inhalt des Desktop-Ordners
mounted-drives = Eingehängte Laufwerke
trash-folder-icon = Ordnersymbol des Papierkorbs
icon-size-and-spacing = Symbolgröße und -abstand
icon-size = Symbolgröße
grid-spacing = Rasterabstand
# Listenansicht
name = Name
modified = Geändert
trashed-on = In den Papierkorb verschoben
size = Größe
# Fortschrittsfußzeile
details = Details
dismiss = Meldung verwerfen
operations-running =
    { $running } { $running ->
        [one] laufender Vorgang
       *[other] laufende Vorgänge
    } ({ $percent } %)...
operations-running-finished =
    { $running } { $running ->
        [one] laufender Vorgang
       *[other] laufende Vorgänge
    } ({ $percent } %), { $finished } abgeschlossen...
pause = Pause
resume = Fortsetzen

# Dialoge


## Komprimieren-Dialog

create-archive = Archiv erstellen

## Entpacken-Dialog

extract-password-required = Passwort erforderlich
extract-to = Entpacken nach...
extract-to-title = In Ordner entpacken

## Dialog zum Leeren des Papierkorbs

empty-trash = Papierkorb leeren
empty-trash-warning = Elemente im Papierkorb werden endgültig gelöscht

## Einhängefehler-Dialog

mount-error = Zugriff auf Laufwerk nicht möglich
# Neue(r) Datei/Ordner-Dialog
create-new-file = Neue Datei erstellen
create-new-folder = Neuen Ordner erstellen
file-name = Dateiname
folder-name = Ordnername
file-already-exists = Eine Datei mit diesem Namen existiert bereits
folder-already-exists = Ein Ordner mit diesem Namen existiert bereits
name-hidden = Mit „.“ beginnende Namen werden versteckt
name-invalid = Name darf nicht „{ $filename }“ sein
name-no-slashes = Name darf keine Schrägstriche enthalten
# Öffnen/Speichern-Dialog
cancel = Abbrechen
create = Erstellen
open = Öffnen
open-file = Datei öffnen
open-folder = Ordner öffnen
open-in-new-tab = In neuem Tab öffnen
open-in-new-window = In neuem Fenster öffnen
open-item-location = Speicherort des Elements öffnen
open-multiple-files = Mehrere Dateien öffnen
open-multiple-folders = Mehrere Ordner öffnen
save = Speichern
save-file = Datei speichern

## Öffnen-mit-Dialog

open-with-title = Wie möchtest du „{ $name }“ öffnen?
browse-store = { $store } durchsuchen
other-apps = Andere Anwendungen
related-apps = Ähnliche Anwendungen

## Endgültig-löschen-Dialog

selected-items = Die { $items } ausgewählten Elemente
permanently-delete-question = Endgültig löschen?
delete = Löschen
permanently-delete-warning = { $target } wird endgültig gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.
# Umbenennen-Dialog
rename-file = Datei umbenennen
rename-folder = Ordner umbenennen
# Ersetzen-Dialog
replace = Ersetzen
replace-title = „{ $filename }“ existiert bereits an diesem Ort
replace-warning = Möchtest du sie durch diejenige ersetzen, die du gerade speicherst? Beim Ersetzen wird ihr Inhalt überschrieben.
replace-warning-operation = Möchtest du sie ersetzen? Beim Ersetzen wird ihr Inhalt überschrieben.
original-file = Originaldatei
replace-with = Ersetzen mit
apply-to-all = Auf alle anwenden
keep-both = Beide behalten
skip = Überspringen

## Dialog zum Festlegen als ausführbar und starten

set-executable-and-launch = Als ausführbar festlegen und starten
set-executable-and-launch-description = Möchtest du „{ $name }“ als ausführbar festlegen und starten?
set-and-launch = Festlegen und starten

## Metadaten-Dialog

open-with = Öffnen mit
owner = Eigentümer
group = Gruppe
other = Andere

### Modus 0

none = Keine

### Modus 1 (ungewöhnlich)

execute-only = Nur ausführen

### Modus 2 (ungewöhnlich)

write-only = Nur schreiben

### Modus 3 (ungewöhnlich)

write-execute = Schreiben und ausführen

### Modus 4

read-only = Nur lesen

### Modus 5

read-execute = Lesen und ausführen

### Modus 6

read-write = Lesen und schreiben

### Modus 7

read-write-execute = Lesen, schreiben und ausführen

## Fehlerdialog zum gewünschten Pfad

favorite-path-error = Fehler beim Öffnen des Verzeichnisses
favorite-path-error-description =
    „{ $path }“ kann nicht geöffnet werden
    „{ $path }“ existiert möglicherweise nicht oder du hast keine Berechtigung zum Öffnen

    Möchtest du es aus der Seitenleiste entfernen?
remove = Entfernen
keep = Behalten

# Kontextseiten


## Über


## Netzlaufwerk hinzufügen

add-network-drive = Netzlaufwerk hinzufügen
connect = Verbinden
connect-anonymously = Anonym verbinden
connecting = Wird verbunden...
domain = Domain
enter-server-address = Serveradresse eingeben
network-drive-description =
    Serveradressen enthalten ein Protokollpräfix und eine Adresse.
    Beispiele: ssh://192.168.0.1, ftp://[2001:db8::1]

### Achte darauf, dass das Komma, das die Spalten trennt, erhalten bleibt

network-drive-schemes =
    Verfügbare Protokolle,Präfix
    AppleTalk,afp://
    File Transfer Protocol,ftp:// oder ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// oder ssh://
    WebDav,dav:// oder davs://
network-drive-error = Zugriff auf Netzlaufwerk nicht möglich
password = Passwort
remember-password = Passwort merken
try-again = Erneut versuchen
username = Benutzername

## Vorgänge

cancelled = Abgebrochen
edit-history = Verlauf bearbeiten
history = Verlauf
no-history = Keine Einträge im Verlauf.
pending = Ausstehend
progress = { $percent } %
progress-cancelled = { $percent } %, abgeschlossen
progress-paused = { $percent } %, pausiert
failed = Fehlgeschlagen
complete = Abgeschlossen
compressing =
    { $items } { $items ->
        [one] Element wird
       *[other] Elemente werden
    } von „{ $from }“ nach „{ $to }“ komprimiert ({ $progress })...
compressed =
    { $items } { $items ->
        [one] Element wurde
       *[other] Elemente wurden
    } von „{ $from }“ nach „{ $to }“ komprimiert
copy_noun = Kopie
creating = „{ $name }“ in „{ $parent }“ wird erstellt
created = „{ $name }“ in „{ $parent }“ wurde erstellt
copying =
    { $items } { $items ->
        [one] Element wird
       *[other] Elemente werden
    } von „{ $from }“ nach „{ $to }“ kopiert ({ $progress })...
copied =
    { $items } { $items ->
        [one] Element wurde
       *[other] Elemente wurden
    } „{ $from }“ nach „{ $to }“ kopiert
deleting =
    { $items } { $items ->
        [one] Element wird
       *[other] Elemente werden
    } aus dem { trash } gelöscht ({ $progress })...
deleted =
    { $items } { $items ->
        [one] Element wurde
       *[other] Elemente wurden
    } aus dem { trash } gelöscht
emptying-trash = { trash } wird geleert ({ $progress })...
emptied-trash = { trash } geleert
extracting =
    { $items } { $items ->
        [one] Element wird
       *[other] Elemente werden
    } von „{ $from }“ nach „{ $to }“ entpackt ({ $progress })...
extracted =
    { $items } { $items ->
        [one] Element wurde
       *[other] Elemente wurden
    } von „{ $from }“ nach „{ $to }“ entpackt
setting-executable-and-launching = „{ $name }“ wird als ausführbar festgelegt und gestartet
set-executable-and-launched = „{ $name }“ als ausführbar festgelegt und gestartet
setting-permissions = Berechtigungen für „{ $name }“ werden auf { $mode } festgelegt
set-permissions = Berechtigungen für „{ $name }“ auf { $mode } festlegen
moving =
    { $items } { $items ->
        [one] Element wird
       *[other] Elemente werden
    } von „{ $from }“ nach „{ $to }“ verschoben ({ $progress })...
moved =
    { $items } { $items ->
        [one] Element wurde
       *[other] Elemente wurden
    } von „{ $from }“ nach „{ $to }“ verschoben
permanently-deleting =
    { $items } { $items ->
        [one] Element wird
       *[other] Elemente werden
    } endgültig gelöscht
permanently-deleted =
    { $items } { $items ->
        [one] Element wurde
       *[other] Element wurden
    } endgültig gelöscht
renaming = „{ $from }“ wird in „{ $to }“ umbenannt
renamed = „{ $from }“ wurde in „{ $to }“ umbenannt
restoring =
    { $items } { $items ->
        [one] Element wird
       *[other] Elemente werden
    } aus dem { trash } wiederhergestellt ({ $progress })...
restored =
    { $items } { $items ->
        [one] Element wurde
       *[other] Elemente wurden
    } aus dem { trash } wiederhergestellt
unknown-folder = unbekannter Ordner

## Öffnen mit

menu-open-with = Öffnen mit...
default-app = { $name } (Standard)

## Details anzeigen

show-details = Details anzeigen
type = Typ: { $mime }
items = Elemente: { $items }
item-size = Größe: { $size }
item-created = Erstellt: { $created }
item-modified = Geändert: { $modified }
item-accessed = Zugegriffen: { $accessed }
calculating = Wird berechnet...

## Einstellungen

settings = Einstellungen
single-click = Mit einem Klick öffnen

### Aussehen

appearance = Aussehen
theme = Thema
match-desktop = An Desktop anpassen
dark = Dunkel
light = Hell

### Zum Suchen tippen

type-to-search = Zum Suchen tippen
type-to-search-recursive = Durchsucht den aktuellen Ordner und alle Unterordner
type-to-search-enter-path = Gib den Pfad zum Verzeichnis oder zur Datei ein
# Kontextmenü
add-to-sidebar = Zur Seitenleiste hinzufügen
compress = Komprimieren...
delete-permanently = Endgültig löschen
extract-here = Entpacken
new-file = Neue Datei...
new-folder = Neuer Ordner...
open-in-terminal = Im Terminal öffnen
move-to-trash = In den Papierkorb verschieben
restore-from-trash = Aus dem Papierkorb wiederherstellen
remove-from-sidebar = Von der Seitenleiste entfernen
sort-by-name = Nach Name sortieren
sort-by-modified = Nach Änderung sortieren
sort-by-size = Nach Größe sortieren
sort-by-trashed = Nach Löschzeitpunkt sortieren

## Desktop

change-wallpaper = Hintergrundbild ändern...
desktop-appearance = Desktop-Aussehen...
display-settings = Anzeigeeinstellungen...

# Menü


## Datei

file = Datei
new-tab = Neuer Tab
new-window = Neues Fenster
reload-folder = Ordner neu laden
rename = Umbenennen...
close-tab = Tab schließen
quit = Beenden

## Bearbeiten

edit = Bearbeiten
cut = Ausschneiden
copy = Kopieren
paste = Einfügen
select-all = Alles auswählen

## Ansicht

zoom-in = Hineinzoomen
default-size = Standardgröße
zoom-out = Herauszoomen
view = Ansicht
grid-view = Rasteransicht
list-view = Listenansicht
show-hidden-files = Versteckte Dateien anzeigen
list-directories-first = Verzeichnisse zuerst auflisten
gallery-preview = Galerie-Vorschau
menu-settings = Einstellungen...
menu-about = Über COSMIC Dateien...

## Sortieren

sort = Sortierung
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = Neueste zuerst
sort-oldest-first = Älteste zuerst
sort-smallest-to-largest = Von klein nach groß
sort-largest-to-smallest = Von groß nach klein
repository = Repository
empty-trash-title = Papierkorb leeren?
copy-to-title = Kopierziel auswählen
copy-to-button-label = Kopieren
support = Unterstützung
progress-failed = { $percent } %, fehlgeschlagen
removing-from-recents =
    { $items } { $items ->
        [one] Element wird
       *[other] Elemente werden
    } aus { recents } entfernt
removed-from-recents =
    { $items } { $items ->
        [one] Element wurde
       *[other] Elemente wurden
    } aus { recents } entfernt
eject = Auswerfen
type-to-search-select = Wählt die erste übereinstimmende Datei oder den ersten übereinstimmenden Ordner aus
pasted-image = Eingefügtes Bild
pasted-text = Eingefügter Text
pasted-video = Eingefügtes Video
copy-to = Kopieren nach...
show-recents = Ordner zuletzt verwendeter Elemente in der Seitenleiste
clear-recents-history = Verlauf zuletzt verwendeter Elemente leeren
comment = Dateimanager für den COSMIC Desktop
keywords = Ordner;Manager;
move-to-button-label = Verschieben
move-to-title = Verschiebeziel auswählen
remove-from-recents = Aus den zuletzt verwendeten Elementen entfernen
move-to = Verschieben nach...
copy-path = Pfad kopieren
mixed = Gemischt


================================================
FILE: i18n/el/cosmic_files.ftl
================================================
empty-folder = Άδειος φάκελος
no-results = Δεν βρέθηκαν αποτελέσματα
trash = Κάδος Ανακύκλωσης
recents = Πρόσφατα
cosmic-files = COSMIC Αρχεία
empty-folder-hidden = Άδειος φάκελος (περιέχει κρυφά αντικείμενα)
filesystem = Σύστημα αρχείων
home = Προσωπικός φάκελος
networks = Δίκτυο
comment = Αρχεία για το COSMIC περιβάλλον
keywords = Φάκελος;Διαχειριστής;
rename = Μετονομασία...
close-tab = Κλείσιμο καρτέλας
light = Φωτεινό
dark = Σκοτεινό


================================================
FILE: i18n/en/cosmic_files.ftl
================================================
cosmic-files = COSMIC Files
comment = File manager for the COSMIC desktop
keywords = Folder;Manager;
empty-folder = Empty folder
empty-folder-hidden = Empty folder (has hidden items)
no-results = No results found
filesystem = Filesystem
home = Home
networks = Networks
notification-in-progress = File operations are in progress
trash = Trash
recents = Recents
undo = Undo
today = Today

# Desktop view options
desktop-view-options = Desktop view options...
show-on-desktop = Show on Desktop
desktop-folder-content = Desktop folder content
mounted-drives = Mounted drives
trash-folder-icon = Trash folder icon
icon-size-and-spacing = Icon size and spacing
icon-size = Icon size
grid-spacing = Grid spacing

# List view
name = Name
modified = Modified
trashed-on = Trashed
size = Size

# Progress footer
details = Details
dismiss = Dismiss message
operations-running = {$running} {$running ->
    [one] operation
    *[other] operations
  } running ({$percent}%)...
operations-running-finished = {$running} {$running ->
    [one] operation
    *[other] operations
  } running ({$percent}%), {$finished} finished...
pause = Pause
resume = Resume

# Dialogs

## Compress Dialog
create-archive = Create archive

## Copy To Dialog
copy-to-title = Select copy destination
copy-to-button-label = Copy

## Extract Dialog
extract-password-required = Password required
extract-to = Extract To...
extract-to-title = Extract to folder

## Empty Trash Dialog
empty-trash = Empty trash
empty-trash-title = Empty trash?
empty-trash-warning = Items in the Trash folder will be permanently deleted

## Mount Error Dialog
mount-error = Unable to access drive

## Move To Dialog
move-to-title = Select move destination
move-to-button-label = Move

## New File/Folder Dialog
create-new-file = Create new file
create-new-folder = Create new folder
file-name = File name
folder-name = Folder name
file-already-exists = A file with that name already exists
folder-already-exists = A folder with that name already exists
name-hidden = Names starting with "." will be hidden
name-invalid = Name cannot be "{$filename}"
name-no-slashes = Name cannot contain slashes

## Open/Save Dialog
cancel = Cancel
create = Create
open = Open
open-file = Open file
open-folder = Open folder
open-in-new-tab = Open in new tab
open-in-new-window = Open in new window
open-item-location = Open item location
open-multiple-files = Open multiple files
open-multiple-folders = Open multiple folders
save = Save
save-file = Save file

## Open With Dialog
open-with-title = How do you want to open "{$name}"?
browse-store = Browse {$store}
other-apps = Other applications
related-apps = Related applications
context-action = Context action
context-action-confirm-title = Run "{$name}"?
context-action-confirm-warning = This will run on {$items} {$items ->
    [one] item
    *[other] items
  }.
run = Run

## Permanently delete Dialog
selected-items = The {$items} selected items
permanently-delete-question = Permanently delete?
delete = Delete
permanently-delete-warning = {$target} will be permanently deleted. This action can't be undone.

## Rename Dialog
rename-file = Rename file
rename-folder = Rename folder

## Replace Dialog
replace = Replace
replace-title = "{$filename}" already exists in this location
replace-warning = Do you want to replace it with the one you are saving? Replacing it will overwrite its content.
replace-warning-operation = Do you want to replace it? Replacing it will overwrite its content.
original-file = Original file
replace-with = Replace with
apply-to-all = Apply to all
keep-both = Keep both
skip = Skip

## Set as Executable and Launch Dialog
set-executable-and-launch = Set as executable and launch
set-executable-and-launch-description = Do you want to set "{$name}" as executable and launch it?
set-and-launch = Set and launch

## Metadata Dialog
open-with = Open with
owner = Owner
group = Group
other = Other
mixed = Mixed
### Mode 0
none = None
### Mode 1 (unusual)
execute-only = Execute-only
### Mode 2 (unusual)
write-only = Write-only
### Mode 3 (unusual)
write-execute = Write and execute
### Mode 4
read-only = Read-only
### Mode 5
read-execute = Read and execute
### Mode 6
read-write = Read and write
### Mode 7
read-write-execute = Read, write, and execute

## Favorite Path Error Dialog
favorite-path-error = Error opening directory
favorite-path-error-description =
    Unable to open "{$path}"
    "{$path}" might not exist or you might not have permission to open it

    Would you like to remove it from the sidebar?
remove = Remove
keep = Keep

# Context Pages

## About
repository = Repository
support = Support

## Add Network Drive
add-network-drive = Add network drive
connect = Connect
connect-anonymously = Connect anonymously
connecting = Connecting...
domain = Domain
enter-server-address = Enter server address
network-drive-description =
    Server addresses include a protocol prefix and address.
    Examples: ssh://192.168.0.1, ftp://[2001:db8::1]
### Make sure to keep the comma which separates the columns
network-drive-schemes =
    Available protocols,Prefix
    AppleTalk,afp://
    File Transfer Protocol,ftp:// or ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// or ssh://
    WebDAV,dav:// or davs://
network-drive-error = Unable to access network drive
password = Password
remember-password = Remember password
try-again = Try again
username = Username

## Operations
cancelled = Cancelled
edit-history = Edit history
history = History
no-history = No items in history.
pending = Pending
progress = {$percent}%
progress-cancelled = {$percent}%, cancelled
progress-failed = {$percent}%, failed
progress-paused = {$percent}%, paused
failed = Failed
complete = Complete
compressing = Compressing {$items} {$items ->
        [one] item
        *[other] items
    } from "{$from}" to "{$to}" ({$progress})...
compressed = Compressed {$items} {$items ->
        [one] item
        *[other] items
    } from "{$from}" to "{$to}"
copy_noun = Copy
pasted-image = Pasted Image
pasted-text = Pasted Text
pasted-video = Pasted Video
creating = Creating "{$name}" in "{$parent}"
created = Created "{$name}" in "{$parent}"
copying = Copying {$items} {$items ->
        [one] item
        *[other] items
    } from "{$from}" to "{$to}" ({$progress})...
copied = Copied {$items} {$items ->
        [one] item
        *[other] items
    } from "{$from}" to "{$to}"
deleting = Deleting {$items} {$items ->
        [one] item
        *[other] items
    } from {trash} ({$progress})...
deleted = Deleted {$items} {$items ->
        [one] item
        *[other] items
    } from {trash}
emptying-trash = Emptying {trash} ({$progress})...
emptied-trash = Emptied {trash}
extracting = Extracting {$items} {$items ->
        [one] item
        *[other] items
    } from "{$from}" to "{$to}" ({$progress})...
extracted = Extracted {$items} {$items ->
        [one] item
        *[other] items
    } from "{$from}" to "{$to}"
setting-executable-and-launching = Setting "{$name}" as executable and launching
set-executable-and-launched = Set "{$name}" as executable and launched
setting-permissions = Setting permissions for "{$name}" to {$mode}
set-permissions = Set permissions for "{$name}" to {$mode}
moving = Moving {$items} {$items ->
        [one] item
        *[other] items
    } from "{$from}" to "{$to}" ({$progress})...
moved = Moved {$items} {$items ->
        [one] item
        *[other] items
    } from "{$from}" to "{$to}"
permanently-deleting = Permanently deleting {$items} {$items ->
        [one] item
        *[other] items
    }
permanently-deleted = Permanently deleted {$items} {$items ->
        [one] item
        *[other] items
    }
removing-from-recents = Removing {$items} {$items ->
        [one] item
        *[other] items
    } from {recents}
removed-from-recents = Removed {$items} {$items ->
        [one] item
        *[other] items
    } from {recents}
renaming = Renaming "{$from}" to "{$to}"
renamed = Renamed "{$from}" to "{$to}"
restoring = Restoring {$items} {$items ->
        [one] item
        *[other] items
    } from {trash} ({$progress})...
restored = Restored {$items} {$items ->
        [one] item
        *[other] items
    } from {trash}
unknown-folder = unknown folder

## Open with
menu-open-with = Open with...
default-app = {$name} (default)

## Show details
show-details = Show details
type = Type: {$mime}
items = Items: {$items}
item-size = Size: {$size}
item-created = Created: {$created}
item-modified = Modified: {$modified}
item-accessed = Accessed: {$accessed}
calculating = Calculating...

## Settings
settings = Settings
single-click = Single click to open
show-recents = Recents folder in the sidebar

### Appearance
appearance = Appearance
theme = Theme
match-desktop = Match desktop
dark = Dark
light = Light

### Type to search
type-to-search = Type to search
type-to-search-recursive = Searches the current folder and all subfolders
type-to-search-enter-path = Enters the path to the directory or file
type-to-search-select = Selects the first matching file or folder

# Context menu
add-to-sidebar = Add to sidebar
clear-recents-history = Clear Recents history
compress = Compress...
copy-to = Copy to...
delete-permanently = Delete permanently
eject = Eject
extract-here = Extract
new-file = New file...
new-folder = New folder...
open-in-terminal = Open in terminal
move-to = Move to...
move-to-trash = Move to trash
restore-from-trash = Restore from trash
remove-from-sidebar = Remove from sidebar
sort-by-name = Sort by name
sort-by-modified = Sort by modified
sort-by-size = Sort by size
sort-by-trashed = Sort by delete time
remove-from-recents = Remove from recents

## Desktop
change-wallpaper = Change wallpaper...
desktop-appearance = Desktop appearance...
display-settings = Display settings...

# Menu

## File
file = File
new-tab = New tab
new-window = New window
reload-folder = Reload folder
rename = Rename...
close-tab = Close tab
quit = Quit

## Edit
edit = Edit
cut = Cut
copy = Copy
copy-path = Copy path
paste = Paste
select-all = Select all

## View
zoom-in = Zoom in
default-size = Default size
zoom-out = Zoom out
view = View
grid-view = Grid view
list-view = List view
show-hidden-files = Show hidden files
list-directories-first = List directories first
gallery-preview = Gallery preview
menu-settings = Settings...
menu-about = About COSMIC Files...

## Sort
sort = Sort
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = Newest first
sort-oldest-first = Oldest first
sort-smallest-to-largest = Smallest to largest
sort-largest-to-smallest = Largest to smallest


================================================
FILE: i18n/en-GB/cosmic_files.ftl
================================================


================================================
FILE: i18n/eo/cosmic_files.ftl
================================================


================================================
FILE: i18n/es/cosmic_files.ftl
================================================
cosmic-files = Archivos COSMIC
comment = Gestor de archivos de COSMIC
keywords = Archivos;Ficheros;Gestor;Explorador;
empty-folder = Carpeta vacía
empty-folder-hidden = Carpeta vacía (Contiene archivos ocultos)
no-results = No se encontraron resultados
filesystem = Sistema de archivos
home = Inicio
networks = Redes
notification-in-progress = Las operaciones de archivo están en progreso.
trash = Papelera
recents = Reciente
undo = Deshacer
today = Hoy
# Desktop view options
desktop-view-options = Opciones de vista del escritorio...
show-on-desktop = Mostrar en el escritorio
desktop-folder-content = Contenido de la carpeta del escritorio
mounted-drives = Unidades montadas
trash-folder-icon = Icono de la papelera
icon-size-and-spacing = Tamaño y espaciado de los iconos
icon-size = Tamaño del icono
grid-spacing = Espaciado de la cuadrícula
# List view
name = Nombre
modified = Modificado
trashed-on = Enviado a la papelera
size = Tamaño
# Progress footer
details = Detalles
dismiss = Descartar mensaje
operations-running =
    { $running } { $running ->
        [one] operación
       *[other] operaciones
    } ejecutándose ({ $percent }%)...
operations-running-finished =
    { $running } { $running ->
        [one] operación
       *[other] operaciones
    } ejecutándose ({ $percent }%), { $finished } finished...
pause = Pausar
resume = Reanudar

# Dialogs


## Compress Dialog

create-archive = Crear archivo

## Extract Dialog

extract-password-required = Contraseña requerida
extract-to = Extraer en...
extract-to-title = Extraer a una carpeta

## Empty Trash Dialog

empty-trash = Vaciar la papelera
empty-trash-warning = ¿Está seguro de que quiere eliminar permanentemente todos los archivos de la papelera?

## Mount Error Dialog

mount-error = No se puede acceder a la unidad

## New File/Folder Dialog

create-new-file = Crear nuevo archivo
create-new-folder = Crear nueva carpeta
file-name = Nombre del archivo
folder-name = Nombre de la carpeta
file-already-exists = Ya existe un archivo con ese nombre.
folder-already-exists = Ya existe una carpeta con ese nombre.
name-hidden = Nombres comenzando con "." serán ocultados.
name-invalid = El nombre no puede ser: "{ $filename }".
name-no-slashes = El nombre no puede contener slashes (barras).

## Open/Save Dialog

cancel = Cancelar
create = Crear
open = Abrir
open-file = Abrir archivo
open-folder = Abrir carpeta
open-in-new-tab = Abrir en nueva pestaña
open-in-new-window = Abrir en nueva ventana
open-item-location = Abrir ubicación del archivo
open-multiple-files = Abrir multiples archivos
open-multiple-folders = Abrir multiples carpetas
save = Guardar
save-file = Guardar archivo

## Open With Dialog

open-with-title = ¿Cómo quiere abrir "{ $name }"?
browse-store = Explorar { $store }
other-apps = Otras aplicaciones
related-apps = Aplicaciones relacionadas

## Permanently delete Dialog

selected-items = los { $items } archivos seleccionados
permanently-delete-question = Eliminar permanentemente
delete = Eliminar
permanently-delete-warning = ¿Quiere eliminar permanentemente { $target }? Esta acción no se puede deshacer.

## Rename Dialog

rename-file = Renombrar archivo
rename-folder = Renombrar carpeta

## Replace Dialog

replace = Reemplazar
replace-title = { $filename } ya existe en esta ruta.
replace-warning = ¿Quiere remplazarlo con el que está guardando? Reemplazarlo sobrescribirá su contenido.
replace-warning-operation = ¿Quieres reemplazarlo? Reemplazarlo sobrescribirá su contenido.
original-file = Archivo original
replace-with = Reemplazar con
apply-to-all = Aplicar a todos
keep-both = Conservar ambos
skip = Saltar

## Set as Executable and Launch Dialog

set-executable-and-launch = Establecer como ejecutable y ejecutar
set-executable-and-launch-description = ¿Quieres establecer "{ $name }" como ejecutable y ejecutar?
set-and-launch = Establecer y ejecutar

## Metadata Dialog

open-with = Abrir con
owner = Propietario
group = Grupo
other = Otro

### Mode 0

none = Ninguno

### Mode 1 (unusual)

execute-only = Únicamente ejecución

### Mode 2 (unusual)

write-only = Únicamente escritura

### Mode 3 (unusual)

write-execute = Escritura y ejecución

### Mode 4

read-only = Únicamente lectura

### Mode 5

read-execute = Lectura y ejecución

### Mode 6

read-write = Lectura y escritura

### Mode 7

read-write-execute = Lectura, escritura y ejecución

## Favorite Path Error Dialog

favorite-path-error = Error al abrir el directorio
favorite-path-error-description =
    No se puede abrir "{ $path }".
    Puede que no exista o que no tenga permisos para abrirlo.

    ¿Quiere eliminarlo de la barra lateral?
remove = Eliminar
keep = Mantener

# Context Pages


## About

repository = Repositorio
support = Apoyo

## Add Network Drive

add-network-drive = Agregar una unidad de red
connect = Conectar
connect-anonymously = Conectar de forma anónima
connecting = Conectando...
domain = Dominio
enter-server-address = Ingresa la dirección del servidor
network-drive-description =
    Las direcciones de los servidores incluyen un prefijo de protocolo y una dirección.
    Ejemplos: ssh://192.168.0.1, ftp://[2001:db8::1]

### Make sure to keep the comma which separates the columns

network-drive-schemes =
    Protocolos disponibles,Prefijo
    AppleTalk,afp://
    Protocolo de transferencia de archivos,ftp:// o ftps://
    Sistema de archivos de red,nfs://
    Bloque de mensajes del servidor,smb://
    Protocolo de transferencia de archivos SSH,sftp:// o ssh://
    WebDav,dav:// o davs://
network-drive-error = No se puede acceder a la unidad de red
password = Contraseña
remember-password = Recordar contraseña
try-again = Intentar de nuevo
username = Nombre de usuario

## Operations

cancelled = Cancelada
edit-history = Historial de ediciones
history = Historial
no-history = No hay archivos en el historial.
pending = Pendiente
progress = { $percent } %
progress-cancelled = { $percent }%, cancelado
progress-paused = { $percent }%, pausado
failed = Fallidas
complete = Completadas
compressing =
    Comprimiendo { $items ->
        [one] elemento
       *[other] { $items } elementos
    } de "{ $from }" a "{ $to }" ({ $progress })...
compressed =
    { $items ->
        [one] Se ha comprimido un elemento
       *[other] Se han comprimidos { $items } elementos
    } de "{ $from }" a "{ $to }"
copy_noun = Copia
creating = Creando "{ $name }" en "{ $parent }"
created = Se ha creado "{ $name }" en "{ $parent }"
copying =
    Copiando { $items ->
        [one] elemento
       *[other] { $items } elementos
    } de "{ $from }" a "{ $to }" ({ $progress })...
copied =
    { $items ->
        [one] Se ha copiado un archivo
       *[other] Se han copiado { $items } archivos
    } de "{ $from }" a "{ $to }"
deleting =
    { $items ->
        [one] Eliminando un archivo
       *[other] Eliminando { $items } archivos
    } de la { trash } ({ $progress })...
deleted =
    { $items ->
        [one] Se ha eliminado un elemento
       *[other] Se han eliminado { $items } elementos
    } de la { trash }
emptying-trash = Vaciando la { trash } ({ $progress })...
emptied-trash = Se ha vaciado la { trash }
extracting =
    Extrayendo { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de "{ $from }" a "{ $to }" ({ $progress })...
extracted =
    { $items ->
        [one] Se ha extraído un elemento
       *[other] Se han extraído { $items } elementos
    } de "{ $from }" a "{ $to }"
setting-executable-and-launching = Estableciendo "{ $name }" como ejecutable y lanzando
set-executable-and-launched = Se ha establecido "{ $name }" como ejecutable y se ha lanzado
moving =
    Moviendo { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de "{ $from }" a "{ $to }" ({ $progress })...
moved =
    { $items ->
        [one] Se ha movido un elemento
       *[other] Se han movido { $items } elementos
    } de "{ $from }" a "{ $to }"
permanently-deleting =
    Eliminando { $items } { $items ->
        [one] elemento
       *[other] archivos
    } permanentemente
permanently-deleted =
    { $items ->
        [one] Se ha eliminado un archivo permanentemente
       *[other] Se han eliminado { $items } archivos permanentemente
    }
renaming = Cambiando el nombre de "{ $from }" a "{ $to }"
renamed = Se ha cambiado el nombre de "{ $from }" a "{ $to }"
restoring =
    Restaurando { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de la { trash } ({ $progress })...
restored =
    { $items ->
        [one] Se ha restaurado un archivo
       *[other] Se han restaurado { $items } archivos
    } de la { trash }
unknown-folder = carpeta desconocida

## Open with

menu-open-with = Abrir con...
default-app = { $name } (predeterminado)

## Show details

show-details = Mostrar detalles
type = Tipo: { $mime }
items = Archivos: { $items }
item-size = Tamaño: { $size }
item-created = Fecha de creación: { $created }
item-modified = Última modificación: { $modified }
item-accessed = Último acceso: { $accessed }
calculating = Calculando...

## Settings

settings = Configuración
single-click = Abrir con solo un clic

### Appearance

appearance = Apariencia
theme = Tema
match-desktop = Seguir el estilo del escritorio
dark = Oscuro
light = Claro

### Type to Search

type-to-search = Escriba para buscar
type-to-search-recursive = Buscar en la carpeta actual y todas sus subcarpetas
type-to-search-enter-path = Escriba la ruta del directorio o archivo
# Context menu
add-to-sidebar = Añadir a la barra lateral
compress = Comprimir
delete-permanently = Eliminar permanentemente
eject = Expulsar
extract-here = Extraer aquí
new-file = Nuevo archivo...
new-folder = Nueva carpeta...
open-in-terminal = Abrir en la consola
move-to-trash = Mover a la papelera
restore-from-trash = Restaurar de la papelera
remove-from-sidebar = Quitar de la barra lateral
sort-by-name = Ordenar por nombre
sort-by-modified = Ordenar por fecha de modificación
sort-by-size = Ordenar por tamaño
sort-by-trashed = Ordenar por fecha de eliminación
remove-from-recents = Quitar de recientes

## Desktop

change-wallpaper = Cambiar fondo de pantalla...
desktop-appearance = Apariencia del escritorio...
display-settings = Configuración de pantalla...

# Menu


## File

file = Archivo
new-tab = Nueva pestaña
new-window = Nueva ventana
reload-folder = Refrescar carpeta
rename = Renombrar...
close-tab = Cerrar pestaña
quit = Cerrar

## Edit

edit = Editar
cut = Cortar
copy = Copiar
paste = Pegar
select-all = Seleccionar todo

## View

zoom-in = Ampliar
default-size = Tamaño predeterminado
zoom-out = Disminuir
view = Vista
grid-view = Vista de cuadrícula
list-view = Vista de lista
show-hidden-files = Mostrar archivos ocultos
list-directories-first = Enumerar los directorios primero
gallery-preview = Vista previa de la galería
menu-settings = Configuración...
menu-about = Acerca de COSMIC Files...

## Sort

sort = Ordenar
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = Más reciente primero
sort-oldest-first = Más antiguo primero
sort-smallest-to-largest = De menor a mayor
sort-largest-to-smallest = De mayor a menor
removing-from-recents =
    Quitando { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de { recents }
removed-from-recents =
    { $items ->
        [one] Se ha quitado elemento
       *[other] Se han quitado { $items } elementos
    } de { recents }
setting-permissions = Estableciendo permisos para "{ $name } " a { $mode }
progress-failed = { $percent } %, con errores
set-permissions = Establecer permisos de "{ $name }" como { $mode }


================================================
FILE: i18n/es-419/cosmic_files.ftl
================================================
cosmic-files = Archivos de COSMIC
empty-folder = Carpeta vacía
empty-folder-hidden = Carpeta vacía (tiene elementos ocultos)
no-results = No se encontraron resultados
filesystem = Sistema de archivos
home = Inicio
networks = Redes
notification-in-progress = Las operaciones de archivo están en progreso
trash = Papelera
recents = Recientes
undo = Deshacer
today = Hoy
# Desktop view options
desktop-view-options = Opciones de vista del escritorio...
show-on-desktop = Mostrar en el escritorio
desktop-folder-content = Contenido de la carpeta del escritorio
mounted-drives = Unidades montadas
trash-folder-icon = Icono de la papelera
icon-size-and-spacing = Tamaño y espaciado de los iconos
icon-size = Tamaño del icono
# List view
name = Nombre
modified = Modificado
trashed-on = Enviado a la papelera
size = Tamaño

# Dialogs


## Compress Dialog

create-archive = Crear archivo comprimido

## Empty Trash Dialog

empty-trash = Vaciar la papelera
empty-trash-warning = ¿Estás seguro de que deseas eliminar permanentemente todos los elementos de la papelera?

## New File/Folder Dialog

create-new-file = Crear nuevo archivo
create-new-folder = Crear nueva carpeta
file-name = Nombre de archivo
folder-name = Nombre de carpeta
file-already-exists = Ya existe un archivo con ese nombre.
folder-already-exists = Ya existe una carpeta con ese nombre.
name-hidden = Los nombres que comiencen con "." se ocultarán.
name-invalid = El nombre no puede ser "{ $filename }".
name-no-slashes = El nombre no puede contener barras.

## Open/Save Dialog

cancel = Cancelar
create = Crear
open = Abrir
open-file = Abrir archivo
open-folder = Abrir carpeta
open-in-new-tab = Abrir en una nueva pestaña
open-in-new-window = Abrir en una nueva ventana
open-item-location = Abrir ubicación del elemento
open-multiple-files = Abrir múltiples archivos
open-multiple-folders = Abrir múltiples carpetas
save = Guardar
save-file = Guardar archivo

## Open With Dialog

open-with-title = ¿Cómo deseas abrir "{ $name }"?
browse-store = Explorar { $store }

## Rename Dialog

rename-file = Cambiar el nombre del archivo
rename-folder = Cambiar el nombre de la carpeta

## Replace Dialog

replace = Reemplazar
replace-title = "{ $filename }" ya existe en esta ubicación.
replace-warning = ¿Quieres reemplazarlo con el que estás guardando? Reemplazarlo sobrescribirá su contenido.
replace-warning-operation = ¿Quieres reemplazarlo? Reemplazarlo sobrescribirá su contenido.
original-file = Archivo original
replace-with = Reemplazar con
apply-to-all = Aplicar a todos
keep-both = Conservar ambos
skip = Saltar

## Set as Executable and Launch Dialog

set-executable-and-launch = Establecer como ejecutable y ejecutar
set-executable-and-launch-description = ¿Deseas establecer "{ $name }" como ejecutable y abrirlo?
set-and-launch = Establecer y ejecutar

## Metadata Dialog

owner = Propietario
group = Grupo
other = Otro

# Context Pages


## About


## Add Network Drive

add-network-drive = Agregar unidad de red
connect = Conectar
connect-anonymously = Conectar de forma anónima
connecting = Conectando...
domain = Dominio
enter-server-address = Ingresa la dirección del servidor
network-drive-description =
    Las direcciones de los servidores incluyen un prefijo de protocolo y una dirección.
    Ejemplos: ssh://192.168.0.1, ftp://[2001:db8::1]

### Make sure to keep the comma which separates the columns

network-drive-schemes =
    Protocolos disponibles,Prefijo
    AppleTalk,afp://
    Protocolo de transferencia de archivos,ftp:// o ftps://
    Sistema de archivos de red,nfs://
    Bloque de mensajes del servidor,smb://
    Protocolo de transferencia de archivos SSH,sftp:// o ssh://
    WebDav,dav:// o davs://
network-drive-error = No se puede acceder a la unidad de red
password = Contraseña
remember-password = Recordar contraseña
try-again = Intentar de nuevo
username = Nombre de usuario

## Operations

edit-history = Historial de ediciones
history = Historial
no-history = No hay elementos en el historial.
pending = Pendientes
failed = Con error
complete = Completadas
compressing =
    Comprimiendo { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de "{ $from }" a "{ $to }" ({ $progress })...
compressed =
    { $items ->
        [one] Se ha comprimido un elemento
       *[other] Se han comprimidos { $items } elementos
    } de "{ $from }" a "{ $to }"
copy_noun = Copiar
creating = Creando "{ $name }" en "{ $parent }"
created = Se ha creado "{ $name }" en "{ $parent }"
copying =
    Copiando { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de "{ $from }" a "{ $to }" ({ $progress })...
copied =
    { $items ->
        [one] Se ha copiado un elemento
       *[other] Se han copiado { $items } elementos
    } de "{ $from }" a "{ $to }"
emptying-trash = Vaciando la { trash } ({ $progress })...
emptied-trash = Se ha vaciado la { trash }
extracting =
    Extrayendo { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de "{ $from }" a "{ $to }" ({ $progress })...
extracted =
    { $items ->
        [one] Se ha extraído un elemento
       *[other] Se han extraído { $items } elementos
    } de "{ $from }" a "{ $to }"
setting-executable-and-launching = Estableciendo "{ $name }" como ejecutable y abriendo
set-executable-and-launched = Se ha establecido "{ $name }" como ejecutable y se ha abierto
moving =
    Moviendo { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de "{ $from }" a "{ $to }" ({ $progress })...
moved =
    { $items ->
        [one] Se ha movido un elemento
       *[other] Se han movido { $items } elementos
    } de "{ $from }" a "{ $to }"
renaming = Cambiando el nombre de "{ $from }" a "{ $to }"
renamed = Se ha cambiado el nombre de "{ $from }" a "{ $to }"
restoring =
    Restaurando { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de la { trash } ({ $progress })...
restored =
    { $items ->
        [one] Se ha restaurado un elemento
       *[other] Se han restaurado { $items } elementos
    } de la { trash }
unknown-folder = carpeta desconocida

## Open with

menu-open-with = Abrir con...
default-app = { $name } (predeterminado)

## Show details

show-details = Mostrar detalles

## Settings

settings = Configuración

### Appearance

appearance = Apariencia
theme = Tema
match-desktop = Igual que el escritorio
dark = Oscuro
light = Claro
# Context menu
add-to-sidebar = Añadir a la barra lateral
compress = Comprimir
extract-here = Extraer aquí
new-file = Archivo nuevo...
new-folder = Carpeta nueva...
open-in-terminal = Abrir en una terminal
move-to-trash = Mover a la papelera
restore-from-trash = Restaurar de la papelera
remove-from-sidebar = Quitar de la barra lateral
sort-by-name = Ordenar por nombre
sort-by-modified = Ordenar por modificado
sort-by-size = Ordenar por tamaño
sort-by-trashed = Ordenar por fecha de eliminación

## Desktop

change-wallpaper = Cambiar fondo de pantalla...
desktop-appearance = Apariencia del escritorio...
display-settings = Configuración de pantalla...

# Menu


## File

file = Archivo
new-tab = Nueva pestaña
new-window = Nueva ventana
rename = Cambiar nombre...
close-tab = Cerrar pestaña
quit = Cerrar

## Edit

edit = Editar
cut = Cortar
copy = Copiar
paste = Pegar
select-all = Seleccionar todo

## View

zoom-in = Ampliar
default-size = Tamaño predeterminado
zoom-out = Disminuir
view = Vistar
grid-view = Vista de cuadrícula
list-view = Vista de lista
show-hidden-files = Mostrar archivos ocultos
list-directories-first = Mostrar directorios primero
gallery-preview = Vista previa de la galería
menu-settings = Configuración...
menu-about = Acerca de archivos COSMIC...

## Sort

sort = Ordenar
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = Más reciente primero
sort-oldest-first = Más antiguo primero
sort-smallest-to-largest = De menor a mayor
sort-largest-to-smallest = De mayor a menor
repository = Repositorio
support = Apoyo
details = Detalles
dismiss = Descartar mensaje
remove = Eliminar
cancelled = Canceladas
grid-spacing = Espaciado de cuadrícula
operations-running =
    { $running ->
        [one] Operación de { $running }
       *[other] Operaciones de { $running }
    } en ejecución ({ $percent } %)...
operations-running-finished =
    { $running ->
        [one] Operación de { $running }
       *[other] Operaciones de { $running }
    } en ejecución ({ $percent } %), { $finished } completada(s)...
pause = Pausar
resume = Reanudar
extract-password-required = Contraseña requerida
extract-to = Extraer en...
extract-to-title = Extraer a una carpeta
mount-error = No se puede acceder a la unidad
other-apps = Otras aplicaciones
related-apps = Aplicaciones relacionadas
selected-items = los { $items } archivos seleccionados
permanently-delete-question = Eliminar de forma permanente
delete = Eliminar
permanently-delete-warning = ¿Estás seguro de que quieres eliminar { $target } de forma permanente? Esta acción no se puede deshacer.
open-with = Abrir con
none = Ninguno
execute-only = Solo ejecución
write-only = Solo escritura
write-execute = Escritura y ejecución
read-only = Solo lectura
read-execute = Lectura y ejecución
read-write = Lectura y escritura
read-write-execute = Lectura, escritura y ejecución
favorite-path-error = Error al abrir el directorio
favorite-path-error-description =
    No se puede abrir "{ $path }".
    Puede que no exista o que no tengas permiso a abrirlo.

    ¿Quieres eliminarlo de la barra lateral?
keep = Reservar
progress = { $percent } %
progress-cancelled = { $percent } %, cancelado
progress-failed = { $percent } %, con errores
progress-paused = { $percent } %, pausado
setting-permissions = Estableciendo permisos de "{ $name }" como { $mode }
set-permissions = Establecer permisos de "{ $name }" como { $mode }
permanently-deleting =
    Eliminando { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de forma permanente
deleting =
    Eliminando { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de la { trash } ({ $progress })...
deleted =
    { $items ->
        [one] Se ha eliminado un elemento
       *[other] Se han eliminado { $items } elementos
    } de la { trash }
permanently-deleted =
    { $items ->
        [one] Se ha eliminado un elemento
       *[other] Se han eliminado { $items } elementos
    } de forma permanente
removing-from-recents =
    Quitando { $items } { $items ->
        [one] elemento
       *[other] elementos
    } de { recents }
removed-from-recents =
    { $items ->
        [one] Se ha quitado elemento
       *[other] Se han quitado { $items } elementos
    } de { recents }
reload-folder = Recargar la carpeta
remove-from-recents = Quitar de recientes
calculating = Calculando...
type = Tipo: { $mime }
items = Elementos: { $items }
item-size = Tamaños: { $size }
item-created = Creado: { $created }
item-modified = Modificado: { $modified }
item-accessed = Accedido: { $accessed }
single-click = Abrir con un solo clic
type-to-search = Escribir para buscar
type-to-search-recursive = Buscar en la carpeta actual y todas las subcarpetas
type-to-search-enter-path = Introducir la ruta al directorio o archivo
delete-permanently = Eliminar de forma permanente
eject = Expulsar


================================================
FILE: i18n/es-MX/cosmic_files.ftl
================================================


================================================
FILE: i18n/et/cosmic_files.ftl
================================================
empty-folder = Tühi kaust
empty-folder-hidden = Tühi kaust (leidub peidetud kirjeid)
no-results = Tulemusi ei leidu
filesystem = Failisüsteem
home = Avaleht
networks = Võrguühendused
open-file = Ava fail
appearance = Välimus
theme = Kujundus
match-desktop = Sobita töölauaga
dark = Tume kujundus
light = Hele kujundus
open-folder = Ava kaust
settings = Seadistused
file = Fail
quit = Välju
connect = Ühenda
support = Kasutajatugi
delete = Kustuta
name = Nimi
new-tab = Uus vahekaart
new-window = Uus aken
close-tab = Sulge vahekaart
edit = Muuda
copy = Kopeeri
paste = Aseta
select-all = Vali kõik
cancel = Katkesta
open = Ava
remove = Eemalda
create = Loo
repository = Tarkvarahoidla
replace = Asenda
save = Salvesta
undo = Võta tegevus tagasi
password = Salasõna
cut = Lõika
username = Kasutajanimi
view = Vaata
trash = Prügikast
recents = Viimati kasutatud
today = Täna
menu-settings = Seadistused...
modified = Muudetud
trashed-on = Visatud prügikasti
size = Suurus
details = Üksikasjad
pause = Peata
resume = Jätka
skip = Jäta vahele
zoom-in = Suumi sisse
default-size = Tavasuurus
zoom-out = Suumi välja
save-file = Salvesta fail
create-new-folder = Lisa uus kaust
create-new-file = Lisa uus fail
file-name = Failinimi
folder-name = Kausta nimi
file-already-exists = Sellise nimega fail on juba olemas.
folder-already-exists = Sellise nimega kaust on juba olemas.
name-no-slashes = Nimes ei tohi olla kaldkriipse.
show-on-desktop = Näita töölaual
desktop-folder-content = Töölauakausta sisu
mounted-drives = Haagitud andmekandjad
trash-folder-icon = Prügikastikausta ikoon
icon-size-and-spacing = Ikooni suurus ja vahed
icon-size = Ikooni suurus
grid-spacing = Vahed ruudustikus
operations-running =
    { $running } { $running ->
        [one] tegevus
       *[other] tegevust
    } on töös ({ $percent }%)...
operations-running-finished =
    { $running } { $running ->
        [one] tegevus
       *[other] tegevust
    } on töös ({ $percent }%), { $finished } lõppenud...
name-invalid = Nimi ei saa olla „{ $filename }“.
name-hidden = Kui nime alguses on punkt, siis fail või kaust muutub peidetuks.
open-in-new-tab = Ava uuel vahekaardil
open-in-new-window = Ava uues aknas
open-item-location = Ava objekti asukoht
open-multiple-files = Ava mitu faili
open-multiple-folders = Ava mitu kausta
cancelled = Katkestatud
pending = Ootel
failed = Ebaõnnestunud
complete = Tehtud
dismiss = Suulge sõnum
notification-in-progress = Tegevused failidega on pooleli.
desktop-view-options = Töölauavaate valikud...
create-archive = Loo arhiivifail
extract-password-required = Salasõna on vajalik
extract-to = Paki lahti siia...
extract-to-title = Paku lahti kausta
empty-trash = Tühjenda prügikast
empty-trash-warning = Kas oled kindel, et soovid jäädavalt kustutada prügikasti sisu?
related-apps = Seotud rakendused
rename-file = Muuda faili nime
rename-folder = Muuda kausta nime
replace-title = „{ $filename }“ fail juba on selles asukohas olemas.
open-with-title = Kuidas sa sooviksid avada „{ $name }“ faili?
browse-store = Vaata siia: { $store }
other-apps = Muud rakendused
selected-items = { $items } valitud objekt(i)
permanently-delete-question = Kas kustutame jäädavalt?
permanently-delete-warning = Kas sa oled kindel, et soovid jäädavalt kustutada: { $target }? Seda tegevust ei saa tagasi pöörata.
favorite-path-error = Viga kausta avamisel
add-network-drive = Lisa võrguketas
connect-anonymously = Ühenda anonüümselt
connecting = Ühendamisel...
domain = Domeen
enter-server-address = Sisesta serveri aadress
remember-password = Jäta salasõna meelde
try-again = Proovi uuesti
edit-history = Muutmiste ajalugu
history = Ajalugu
no-history = Ajaloos pole ühtegi kirjet.
progress = { $percent }%
progress-cancelled = { $percent }%, katkestatud
progress-failed = { $percent }%, ebaõnnestus
progress-paused = { $percent }%, peatatud
unknown-folder = tundmatu kaust
menu-open-with = Ava rakendusega…
default-app = { $name } (vaikimisi)
show-details = Näita üksikasju
type = Tüüp: { $mime }
items = Objekte: { $items }
item-size = Suurus: { $size }
item-created = Loodud: { $created }
item-modified = Muudetud: { $modified }
item-accessed = Kasutatud: { $accessed }
calculating = Arvutan...
single-click = Ava ühe klõpsuga
reload-folder = Laadi kaust uuesti
rename = Muuda nime...
grid-view = Ruudustikuvaade
list-view = Loendivaade
show-hidden-files = Näita peidetud faile
list-directories-first = Lisa kaustad loendi algusesse
gallery-preview = Galerii eelvaade
cosmic-files = COSMICu failid
mount-error = Ligipääs andmekandjale puudub
replace-warning = Kas sa soovid ta asendada sellega, mida oled salvestamas? Samaga asendub ka kogu sisu.
replace-warning-operation = Kas sa soovid ta asendada? Samaga asendub ka kogu sisu.
original-file = Algfail
replace-with = Asenda järgnevaga
apply-to-all = Kohalda kõigile
keep-both = Jäta mõlemad alles
set-executable-and-launch = Märgi käivitatavaks ja käivita
set-executable-and-launch-description = Kas sa soovid „{ $name }“ faili märkida käivitatavaks ja ta käivitada?
set-and-launch = Märgi ja käivita
open-with = Ava rakendusega
owner = Omanik
group = Grupp
other = Teised
none = Määramata
execute-only = Ainult käivitatav
write-only = Ainult kirjutatav
write-execute = Kirjutatav ja käivitatav
read-only = Ainult loetav
read-execute = Loetav ja käivitatav
read-write = Loetav ja kirjutatav
read-write-execute = Loetav, kirjutatav ja käivitatav
favorite-path-error-description =
    „{ $path }“ asukoha avamine ei õnnestu.
    Teda kas pole olemas või sul pole õigusi tema avamiseks.

    Kas sooviksid ta külgribalt eemaldada?
keep = Säilita
network-drive-description =
    Serveri aadressides peab olema protokolli eesliide ja aadress ise.
    Näited: ssh://192.168.0.1, ftp://[2001:db8::1]
network-drive-schemes =
    Kasutatavad protokollid,eesliide
    AppleTalk,afp://
    File Transfer Protocol,ftp:// või ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// või ssh://
    WebDAV,dav:// või davs://
network-drive-error = Puudub ligipääs võrgus asuvale andmekandjale
type-to-search = Otsimiseks kirjuta
type-to-search-recursive = Otsing sellest kaustast ja alamkaustadest
type-to-search-enter-path = Sisestab kausta või faili asukoha
add-to-sidebar = Lisa külgribale
remove-from-sidebar = Eemalda külgribalt
copy_noun = Kopeeri
creating = Loon: „{ $name }“ asukohas „{ $parent }“
created = „{ $name }“ on loodud asukohta „{ $parent }“
compress = Paki kokku
delete-permanently = Kustuta jäädavalt
eject = Väljasta
extract-here = Paki lahti
new-file = Uus fail...
new-folder = Uus kaust...
open-in-terminal = Ava terminalis
move-to-trash = Viska prügikasti
restore-from-trash = Taasta prügikastist
sort-by-name = Järjesta nime alusel
sort-by-modified = Järjesta muutmise alusel
sort-by-size = Järjesta suuruse alusel
sort-by-trashed = Järjesta kustutamise aja alusel
remove-from-recents = Eemalda hiljutiste failide loendist
change-wallpaper = Muuda taustapilti...
desktop-appearance = Töölaua välimus...
display-settings = Ekraani seadistused...
menu-about = Rakenduse teave: COSMICu failid...
sort = Järjesta
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = Esmalt uuemad
sort-oldest-first = Esmalt vanemad
sort-smallest-to-largest = Väiksemast suuremani
sort-largest-to-smallest = Suuremast väiksemani


================================================
FILE: i18n/eu/cosmic_files.ftl
================================================


================================================
FILE: i18n/fa/cosmic_files.ftl
================================================
cosmic-files = فایل‌های COSMIC
empty-folder = پوشه خالی
empty-folder-hidden = پوشه خالی (شامل موارد مخفی)
no-results = نتیجه‌ای یافت نشد
filesystem = فایل سیستم
home = خانه
networks = شبکه‌ها
notification-in-progress = عملیات فایل در حال انجام است.
trash = زباله‌دان
recents = موارد اخیر
undo = بازگردانی
today = امروز
# Desktop view options
desktop-view-options = گزینه‌های نمایش دسکتاپ...
show-on-desktop = نمایش در دسکتاپ
desktop-folder-content = محتوای پوشه دسکتاپ
mounted-drives = درایوهای متصل‌شده
trash-folder-icon = آیکون پوشه زباله‌دان
icon-size-and-spacing = اندازه و فاصله آیکون‌ها
icon-size = اندازه آیکون
grid-spacing = فاصله شبکه‌ای
# List view
name = نام
modified = زمان تغییر
trashed-on = زمان حذف
size = حجم
# Progress footer
details = جزئیات
dismiss = بستن پیام
operations-running = { $running } عملیات در حال اجرا ({ $percent }%)...
operations-running-finished = { $running } عملیات در حال اجرا ({ $percent }%)، { $finished } پایان یافته...
pause = توقف
resume = ادامه

# Dialogs


## Compress Dialog

create-archive = ایجاد بایگانی

## Extract Dialog

extract-password-required = رمز عبور مورد نیاز است
extract-to = استخراج در...
extract-to-title = استخراج در پوشه

## Empty Trash Dialog

empty-trash = خالی کردن زباله‌دان
empty-trash-warning = آیا از حذف دائمی همه موارد در زباله‌دان مطمئن هستید؟

## Mount Error Dialog

mount-error = دسترسی به درایو ممکن نیست

## New File/Folder Dialog

create-new-file = ایجاد فایل جدید
create-new-folder = ایجاد پوشه جدید
file-name = نام فایل
folder-name = نام پوشه
file-already-exists = فایلی با این نام وجود دارد.
folder-already-exists = پوشه‌ای با این نام وجود دارد.
name-hidden = نام‌هایی که با "." شروع شوند مخفی خواهند بود.
name-invalid = نام نمی‌تواند "{ $filename }" باشد.
name-no-slashes = نام نمی‌تواند حاوی اسلش باشد.

## Open/Save Dialog

cancel = لغو
create = ایجاد
open = باز کردن
open-file = باز کردن فایل
open-folder = باز کردن پوشه
open-in-new-tab = باز کردن در زبانه جدید
open-in-new-window = باز کردن در پنجره جدید
open-item-location = باز کردن محل مورد
open-multiple-files = باز کردن چندین فایل
open-multiple-folders = باز کردن چندین پوشه
save = ذخیره
save-file = ذخیره فایل

## Open With Dialog

open-with-title = چگونه می‌خواهید "{ $name }" را باز کنید؟
browse-store = مرور { $store }
other-apps = برنامه‌های دیگر
related-apps = برنامه‌های مرتبط

## Permanently delete Dialog

selected-items = { $items } مورد انتخاب شده
permanently-delete-question = حذف دائمی
delete = حذف
permanently-delete-warning = آیا از حذف دائمی { $target } مطمئن هستید؟ این عمل قابل بازگشت نیست.

## Rename Dialog

rename-file = تغییر نام فایل
rename-folder = تغییر نام پوشه

## Replace Dialog

replace = جایگزین کردن
replace-title = "{ $filename }" از قبل در این مکان وجود دارد.
replace-warning = آیا می‌خواهید آن را با موردی که در حال ذخیره هستید جایگزین کنید؟ این عمل محتوای آن را بازنویسی خواهد کرد.
replace-warning-operation = آیا می‌خواهید آن را جایگزین کنید؟ این عمل محتوای آن را بازنویسی خواهد کرد.
original-file = فایل اصلی
replace-with = جایگزینی با
apply-to-all = اعمال برای همه
keep-both = نگه‌داشتن هر دو
skip = رد کردن

## Set as Executable and Launch Dialog

set-executable-and-launch = تنظیم به عنوان فایل اجرایی و اجرا
set-executable-and-launch-description = آیا می‌خواهید "{ $name }" را به عنوان فایل اجرایی تنظیم کرده و اجرا کنید؟
set-and-launch = تنظیم و اجرا

## Metadata Dialog

open-with = باز کردن با
owner = مالک
group = گروه
other = سایر

### Mode 0

none = هیچ‌کدام

### Mode 1 (unusual)

execute-only = فقط اجرا

### Mode 2 (unusual)

write-only = فقط نوشتن

### Mode 3 (unusual)

write-execute = نوشتن و اجرا

### Mode 4

read-only = فقط خواندن

### Mode 5

read-execute = خواندن و اجرا

### Mode 6

read-write = خواندن و نوشتن

### Mode 7

read-write-execute = خواندن، نوشتن و اجرا

## Favorite Path Error Dialog

favorite-path-error = خطا در باز کردن مسیر
favorite-path-error-description =
    باز کردن "{ $path }" امکان‌پذیر نیست.
    ممکن است وجود نداشته باشد یا شما اجازه باز کردن آن را نداشته باشید.

    آیا می‌خواهید آن را از نوار کناری حذف کنید؟
remove = حذف
keep = نگه داشتن

# Context Pages


## About


## Add Network Drive

add-network-drive = افزودن درایو شبکه
connect = اتصال
connect-anonymously = اتصال ناشناس
connecting = در حال اتصال...
domain = دامنه
enter-server-address = آدرس سرور را وارد کنید
network-drive-description =
    آدرس‌های سرور شامل پیشوند پروتکل و آدرس هستند.
    نمونه: ssh://192.168.0.1, ftp://[2001:db8::1]

### Make sure to keep the comma which separates the columns

network-drive-schemes =
    پروتکل‌های موجود,پیشوند
    AppleTalk,afp://
    File Transfer Protocol,ftp:// یا ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// یا ssh://
    WebDav,dav:// یا davs://
network-drive-error = دسترسی به درایو شبکه ممکن نیست
password = رمز عبور
remember-password = به خاطر سپردن رمز عبور
try-again = تلاش دوباره
username = نام کاربری

## Operations

cancelled = لغو شد
edit-history = ویرایش تاریخچه
history = تاریخچه
no-history = هیچ موردی در تاریخچه وجود ندارد.
pending = در حال انتظار
progress = { $percent }%
progress-cancelled = { $percent }%، لغو شد
progress-paused = { $percent }%، متوقف شد
failed = ناموفق
complete = کامل شد
compressing = در حال فشرده‌سازی { $items } مورد از "{ $from }" به "{ $to }" ({ $progress })...
compressed = { $items } مورد از "{ $from }" به "{ $to }" فشرده شد
copy_noun = کپی
creating = در حال ایجاد "{ $name }" در "{ $parent }"
created = "{ $name }" در "{ $parent }" ایجاد شد
copying = در حال کپی { $items } مورد از "{ $from }" به "{ $to }" ({ $progress })...
copied = { $items } مورد از "{ $from }" به "{ $to }" کپی شد
deleting = در حال حذف { $items } مورد از { trash } ({ $progress })...
deleted = { $items } مورد از { trash } حذف شد
emptying-trash = در حال خالی کردن { trash } ({ $progress })...
emptied-trash = { trash } خالی شد
extracting = در حال استخراج { $items } مورد از "{ $from }" به "{ $to }" ({ $progress })...
extracted = { $items } مورد از "{ $from }" به "{ $to }" استخراج شد
setting-executable-and-launching = در حال تنظیم "{ $name }" به عنوان فایل اجرایی و اجرا
set-executable-and-launched = "{ $name }" به عنوان فایل اجرایی تنظیم و اجرا شد
setting-permissions = در حال تنظیم مجوزهای "{ $name }" به { $mode }
set-permissions = مجوزهای "{ $name }" به { $mode } تنظیم شد
moving = در حال انتقال { $items } مورد از "{ $from }" به "{ $to }" ({ $progress })...
moved = { $items } مورد از "{ $from }" به "{ $to }" منتقل شد
permanently-deleting = در حال حذف دائمی { $items } مورد
permanently-deleted = { $items } مورد به صورت دائمی حذف شد
removing-from-recents = در حال حذف { $items } مورد از { recents }
removed-from-recents = { $items } مورد از { recents } حذف شد
renaming = تغییر نام "{ $from }" به "{ $to }"
renamed = "{ $from }" به "{ $to }" تغییر نام یافت
restoring = در حال بازیابی { $items } مورد از { trash } ({ $progress })...
restored = { $items } مورد از { trash } بازیابی شد
unknown-folder = پوشه ناشناس

## Open with

menu-open-with = باز کردن با...
default-app = { $name } (پیش‌فرض)

## Show details

show-details = نمایش جزئیات
type = نوع: { $mime }
items = مورد: { $items }
item-size = حجم: { $size }
item-created = ایجاد شده: { $created }
item-modified = تغییر یافته: { $modified }
item-accessed = دسترسی یافته: { $accessed }
calculating = در حال محاسبه...

## Settings

settings = تنظیمات
single-click = باز کردن با یک کلیک

### Appearance

appearance = ظاهر
theme = پوسته
match-desktop = مطابق با دسکتاپ
dark = تاریک
light = روشن

### Type to Search

type-to-search = جستجو با تایپ کردن
type-to-search-recursive = جستجو در پوشه فعلی و تمام زیرپوشه‌ها
type-to-search-enter-path = وارد کردن مسیر پوشه یا فایل
# Context menu
add-to-sidebar = افزودن به نوار کناری
compress = فشرده‌سازی
delete-permanently = حذف دائمی
eject = خارج کردن
extract-here = استخراج
new-file = فایل جدید...
new-folder = پوشه جدید...
open-in-terminal = باز کردن در ترمینال
move-to-trash = انتقال به زباله‌دان
restore-from-trash = بازیابی از زباله‌دان
remove-from-sidebar = حذف از نوار کناری
sort-by-name = مرتب‌سازی بر اساس نام
sort-by-modified = مرتب‌سازی بر اساس زمان تغییر
sort-by-size = مرتب‌سازی بر اساس حجم
sort-by-trashed = مرتب‌سازی بر اساس زمان حذف
remove-from-recents = حذف از موارد اخیر

## Desktop

change-wallpaper = تغییر تصویر پس‌زمینه...
desktop-appearance = ظاهر دسکتاپ...
display-settings = تنظیمات نمایش...

# Menu


## File

file = فایل
new-tab = زبانه جدید
new-window = پنجره جدید
reload-folder = بازخوانی پوشه
rename = تغییر نام...
close-tab = بستن زبانه
quit = خروج

## Edit

edit = ویرایش
cut = برش
copy = کپی
paste = جایگذاری
select-all = انتخاب همه

## View

zoom-in = بزرگ‌نمایی
default-size = اندازه پیش‌فرض
zoom-out = کوچک‌نمایی
view = نمایش
grid-view = نمایش شبکه‌ای
list-view = نمایش فهرستی
show-hidden-files = نمایش فایل‌های مخفی
list-directories-first = نمایش پوشه‌ها در ابتدا
gallery-preview = پیش‌نمایش گالری
menu-settings = تنظیمات...
menu-about = درباره فایل‌های COSMIC...

## Sort

sort = مرتب‌سازی
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = جدیدترین در ابتدا
sort-oldest-first = قدیمی‌ترین در ابتدا
sort-smallest-to-largest = کوچک‌ترین به بزرگ‌ترین
sort-largest-to-smallest = بزرگ‌ترین به کوچک‌ترین


================================================
FILE: i18n/fi/cosmic_files.ftl
================================================
cosmic-files = COSMICin tiedostot
empty-folder = Tyhjä kansio
empty-folder-hidden = Tyhjä kansio (sisältää piilotettuja kohteita)
no-results = Ei tuloksia
filesystem = Tiedostojärjestelmä
home = Koti
networks = Verkot
notification-in-progress = Tiedostotoimintoja käynnissä
trash = Roskakori
recents = Viimeaikaiset
undo = Kumoa
today = Tänään

# Desktop view options

desktop-view-options = Työpöytänäkymän asetukset…
show-on-desktop = Näytä työpöydällä
desktop-folder-content = Työpöytäkansion sisältö
mounted-drives = Liitetyt asemat
trash-folder-icon = Roskakorikansion kuvake
icon-size-and-spacing = Kuvakkeen koko ja välistys
icon-size = Kuvakkeen koko

# List view

name = Nimi
modified = Muokattu
trashed-on = Siirretty roskakoriin
size = Koko

# Dialogs


## Compress Dialog

create-archive = Luo arkisto

## Empty Trash Dialog

empty-trash = Tyhjennä roskakori
empty-trash-warning = Roskakorikansion kohteet poistetaan pysyvästi

## Mount Error Dialog

mount-error = Levy on saavuttamattomissa

## New File/Folder Dialog

create-new-file = Luo uusi tiedosto
create-new-folder = Luo uusi kansio
file-name = Tiedoston nimi
folder-name = Kansion nimi
file-already-exists = Tiedosto samalla nimellä on jo olemassa
folder-already-exists = Kansio samalla nimellä on jo olemassa
name-hidden = Merkillä "." alkavat nimet piilotetaan
name-invalid = Nimi ei voi olla "{ $filename }"
name-no-slashes = Nimi ei voi sisältää vinoviivoja

## Open/Save Dialog

cancel = Peru
create = Luo
open = Avaa
open-file = Avaa tiedosto
open-folder = Avaa kansio
open-in-new-tab = Avaa uudessa välilehdessä
open-in-new-window = Avaa uudessa ikkunassa
open-item-location = Avaa kohteen sijainti
open-multiple-files = Avaa useita tiedostoja
open-multiple-folders = Avaa useita kansioita
save = Tallenna
save-file = Tallenna tiedosto

## Open With Dialog

open-with-title = Miten haluat avata kohteen "{ $name }"?
browse-store = Selaa { $store }a

## Rename Dialog

rename-file = Nimeä tiedosto uudelleen
rename-folder = Nimeä kansio uudelleen

## Replace Dialog

replace = Korvaa
replace-title = "{ $filename }" on jo olemassa tässä sijainnissa
replace-warning = Haluatko korvata sen tallentamallasi kohteella? Korvaaminen ylikirjoittaa kohteen sisällön.
replace-warning-operation = Haluatko korvata sen? Korvaaminen ylikirjoittaa sen sisällön.
original-file = Alkuperäinen tiedosto
replace-with = Korvaa käyttäen
apply-to-all = Toteuta kaikkiin
keep-both = Pidä molemmat
skip = Ohita

## Set as Executable and Launch Dialog

set-executable-and-launch = Aseta käynnistettäväksi ja käynnistä
set-executable-and-launch-description = Haluatko asettaa kohteen "{ $name }" käynnistettäväksi ja käynnistää sen?
set-and-launch = Aseta ja käynnistä

## Metadata Dialog

owner = Omistaja
group = Ryhmä
other = Muut

# Context Pages


## About


## Add Network Drive

add-network-drive = Lisää verkkolevy
connect = Yhdistä
connect-anonymously = Yhdistä nimettömästi
connecting = Yhdistetään…
domain = Verkkotunnus
enter-server-address = Kirjoita palvelimen osoite
network-drive-description =
    Palvelinosoitteet sisältävät protokollaetuliitteen sekä osoitteen.
    Esimerkkejä: ssh://192.168.0.1, ftp://[2001:db8::1]

### Make sure to keep the comma which separates the columns

network-drive-schemes =
    Saatavilla olevat yhteyskäytännöt,Etuliite
    AppleTalk,afp://
    File Transfer Protocol,ftp:// tai ftps://
    Network File System,nfs://
    Server Message Block,smb://
    SSH File Transfer Protocol,sftp:// tai ssh://
    WebDav,dav:// tai davs://
network-drive-error = Verkkolevy ei saatavilla
password = Salasana
remember-password = Muista salasana
try-again = Yritä uudelleen
username = Käyttäjätunnus

## Operations

edit-history = Muokkaa historiaa
history = Historia
no-history = Historia on tyhjä.
pending = Jonossa
failed = Epäonnistuneet
complete = Valmiit
compressing =
    Pakataan { $items } { $items ->
        [one] kohde
       *[other] kohdetta
    } sijainnista "{ $from }" arkistoon "{ $to }" ({ $progress })…
compressed =
    Pakattu { $items } { $items ->
        [one] kohde
       *[other] kohdetta
    } sijainnista "{ $from }" arkistoon "{ $to }"
copy_noun = Kopio
creating = Luodaan "{ $name }" kohteen "{ $parent }" alle
created = Luotu "{ $name }" kohteen "{ $parent }" alle
copying =
    Kopioidaan { $items } { $items ->
        [one] kohde
       *[other] kohdetta
    } sijainnista "{ $from }" kohteeseen "{ $to }" ({ $progress })…
copied =
    Kopioitu { $items } { $items ->
        [one] kohde
       *[other] kohdetta
    } sijainnista "{ $from }" kohteeseen "{ $to }"
emptying-trash = Tyhjennetään { trash } ({ $progress })…
emptied-trash = Tyhjennetty { trash }
extracting =
    Puretaan { $items } { $items ->
        [one] kohde
       *[other] kohdetta
    } arkistosta "{ $from }" kohteeseen "{ $to }" ({ $progress })…
extracted =
    Purettu { $items } { $items ->
        [one] kohde
       *[other] kohdetta
    } arkistosta "{ $fr
Download .txt
gitextract_2jlip0v_/

├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── ci.yml
│       └── validate-desktop-files.yml
├── .gitignore
├── .zed/
│   └── settings.json
├── Cargo.toml
├── LICENSE
├── README.md
├── TESTING.md
├── build.rs
├── cosmic-files-applet/
│   ├── Cargo.toml
│   └── src/
│       ├── file_manager.rs
│       └── main.rs
├── debian/
│   ├── changelog
│   ├── control
│   ├── copyright
│   ├── rules
│   └── source/
│       ├── format
│       └── options
├── examples/
│   ├── copy.rs
│   ├── desktop.rs
│   ├── dialog.rs
│   ├── gio-list.rs
│   ├── gio-mount.rs
│   └── gvfs.rs
├── i18n/
│   ├── af/
│   │   └── cosmic_files.ftl
│   ├── ar/
│   │   └── cosmic_files.ftl
│   ├── be/
│   │   └── cosmic_files.ftl
│   ├── bg/
│   │   └── cosmic_files.ftl
│   ├── bn/
│   │   └── cosmic_files.ftl
│   ├── ca/
│   │   └── cosmic_files.ftl
│   ├── cs/
│   │   └── cosmic_files.ftl
│   ├── da/
│   │   └── cosmic_files.ftl
│   ├── de/
│   │   └── cosmic_files.ftl
│   ├── el/
│   │   └── cosmic_files.ftl
│   ├── en/
│   │   └── cosmic_files.ftl
│   ├── en-GB/
│   │   └── cosmic_files.ftl
│   ├── eo/
│   │   └── cosmic_files.ftl
│   ├── es/
│   │   └── cosmic_files.ftl
│   ├── es-419/
│   │   └── cosmic_files.ftl
│   ├── es-MX/
│   │   └── cosmic_files.ftl
│   ├── et/
│   │   └── cosmic_files.ftl
│   ├── eu/
│   │   └── cosmic_files.ftl
│   ├── fa/
│   │   └── cosmic_files.ftl
│   ├── fi/
│   │   └── cosmic_files.ftl
│   ├── fr/
│   │   └── cosmic_files.ftl
│   ├── fy/
│   │   └── cosmic_files.ftl
│   ├── ga/
│   │   └── cosmic_files.ftl
│   ├── gd/
│   │   └── cosmic_files.ftl
│   ├── gu/
│   │   └── cosmic_files.ftl
│   ├── he/
│   │   └── cosmic_files.ftl
│   ├── hi/
│   │   └── cosmic_files.ftl
│   ├── hr/
│   │   └── cosmic_files.ftl
│   ├── hu/
│   │   └── cosmic_files.ftl
│   ├── id/
│   │   └── cosmic_files.ftl
│   ├── ie/
│   │   └── cosmic_files.ftl
│   ├── is/
│   │   └── cosmic_files.ftl
│   ├── it/
│   │   └── cosmic_files.ftl
│   ├── ja/
│   │   └── cosmic_files.ftl
│   ├── jv/
│   │   └── cosmic_files.ftl
│   ├── ka/
│   │   └── cosmic_files.ftl
│   ├── kab/
│   │   └── cosmic_files.ftl
│   ├── kk/
│   │   └── cosmic_files.ftl
│   ├── kmr/
│   │   └── cosmic_files.ftl
│   ├── kn/
│   │   └── cosmic_files.ftl
│   ├── ko/
│   │   └── cosmic_files.ftl
│   ├── li/
│   │   └── cosmic_files.ftl
│   ├── lt/
│   │   └── cosmic_files.ftl
│   ├── ml/
│   │   └── cosmic_files.ftl
│   ├── ms/
│   │   └── cosmic_files.ftl
│   ├── nb-NO/
│   │   └── cosmic_files.ftl
│   ├── nl/
│   │   └── cosmic_files.ftl
│   ├── nn/
│   │   └── cosmic_files.ftl
│   ├── oc/
│   │   └── cosmic_files.ftl
│   ├── pa/
│   │   └── cosmic_files.ftl
│   ├── pl/
│   │   └── cosmic_files.ftl
│   ├── pt/
│   │   └── cosmic_files.ftl
│   ├── pt-BR/
│   │   └── cosmic_files.ftl
│   ├── ro/
│   │   └── cosmic_files.ftl
│   ├── ru/
│   │   └── cosmic_files.ftl
│   ├── sk/
│   │   └── cosmic_files.ftl
│   ├── sl/
│   │   └── cosmic_files.ftl
│   ├── sr/
│   │   └── cosmic_files.ftl
│   ├── sr-Cyrl/
│   │   └── cosmic_files.ftl
│   ├── sr-Latn/
│   │   └── cosmic_files.ftl
│   ├── sv/
│   │   └── cosmic_files.ftl
│   ├── ta/
│   │   └── cosmic_files.ftl
│   ├── th/
│   │   └── cosmic_files.ftl
│   ├── ti/
│   │   └── cosmic_files.ftl
│   ├── tr/
│   │   └── cosmic_files.ftl
│   ├── uk/
│   │   └── cosmic_files.ftl
│   ├── uz/
│   │   └── cosmic_files.ftl
│   ├── vi/
│   │   └── cosmic_files.ftl
│   ├── yue-Hant/
│   │   └── cosmic_files.ftl
│   ├── zh-CN/
│   │   └── cosmic_files.ftl
│   └── zh-TW/
│       └── cosmic_files.ftl
├── i18n.toml
├── justfile
├── res/
│   ├── com.system76.CosmicFiles.desktop
│   └── com.system76.CosmicFiles.metainfo.xml
├── rust-toolchain.toml
├── rustfmt.toml
├── samples/
│   ├── i18n/
│   │   ├── منزل
│   │   └── 主目錄
│   ├── mime/
│   │   ├── application/
│   │   │   ├── javascript.js
│   │   │   ├── octet-stream
│   │   │   ├── x-shellscript.sh
│   │   │   └── x-yaml.yaml
│   │   ├── audio/
│   │   │   └── x-vorbis+ogg.ogg
│   │   ├── check.sh
│   │   └── text/
│   │       ├── css.css
│   │       ├── csv.csv
│   │       ├── html.html
│   │       ├── markdown.md
│   │       ├── plain.txt
│   │       ├── rust.rs
│   │       ├── x-chdr.h
│   │       └── x-csrc.c
│   └── mode/
│       ├── .gitignore
│       └── create.sh
├── scripts/
│   └── copy.sh
└── src/
    ├── app.rs
    ├── archive.rs
    ├── channel.rs
    ├── clipboard.rs
    ├── config.rs
    ├── context_action.rs
    ├── dialog.rs
    ├── key_bind.rs
    ├── large_image.rs
    ├── lib.rs
    ├── load_image.rs
    ├── localize.rs
    ├── main.rs
    ├── menu.rs
    ├── mime_app.rs
    ├── mime_icon.rs
    ├── mounter/
    │   ├── gvfs.rs
    │   └── mod.rs
    ├── mouse_area.rs
    ├── operation/
    │   ├── controller.rs
    │   ├── mod.rs
    │   ├── notifiers.rs
    │   ├── reader.rs
    │   └── recursive.rs
    ├── spawn_detached.rs
    ├── tab.rs
    ├── thumbnail_cacher.rs
    ├── thumbnailer.rs
    ├── trash.rs
    └── zoom.rs
Download .txt
SYMBOL INDEX (808 symbols across 41 files)

FILE: build.rs
  function main (line 5) | fn main() {

FILE: cosmic-files-applet/src/file_manager.rs
  type FileManager (line 8) | pub struct FileManager;
    method open (line 12) | fn open(&self, uris: &[&str], _startup_id: &str) {
    method ShowFolders (line 39) | fn ShowFolders(&self, URIs: Vec<&str>, StartupId: &str) {
    method ShowItems (line 44) | fn ShowItems(&self, URIs: Vec<&str>, StartupId: &str) {
    method ShowItemProperties (line 49) | fn ShowItemProperties(&self, URIs: Vec<&str>, StartupId: &str) {

FILE: cosmic-files-applet/src/main.rs
  function main (line 3) | fn main() -> Result<(), Box<dyn std::error::Error>> {

FILE: examples/copy.rs
  function main (line 8) | async fn main() -> Result<(), Box<dyn Error>> {

FILE: examples/desktop.rs
  function main (line 2) | fn main() -> Result<(), Box<dyn std::error::Error>> {

FILE: examples/dialog.rs
  function main (line 11) | fn main() -> Result<(), Box<dyn std::error::Error>> {
  type Message (line 35) | pub enum Message {
  type App (line 42) | pub struct App {
  type Executor (line 49) | type Executor = executor::Default;
  type Flags (line 50) | type Flags = ();
  type Message (line 51) | type Message = Message;
  constant APP_ID (line 53) | const APP_ID: &'static str = "com.system76.CosmicFilesDialogExample";
  method core (line 55) | fn core(&self) -> &Core {
  method core_mut (line 59) | fn core_mut(&mut self) -> &mut Core {
  method init (line 63) | fn init(core: Core, _flags: Self::Flags) -> (Self, Task<Message>) {
  method update (line 74) | fn update(&mut self, message: Message) -> Task<Message> {
  method view_window (line 156) | fn view_window(&self, window_id: window::Id) -> Element<'_, Message> {
  method view (line 163) | fn view(&self) -> Element<'_, Message> {
  method subscription (line 224) | fn subscription(&self) -> Subscription<Message> {

FILE: examples/gio-list.rs
  function main (line 4) | fn main() {

FILE: examples/gio-mount.rs
  function main (line 4) | fn main() {

FILE: examples/gvfs.rs
  function main (line 3) | fn main() {

FILE: samples/mime/text/rust.rs
  function main (line 1) | fn main() {

FILE: samples/mime/text/x-csrc.c
  function main (line 3) | int main(int argc, char **argv) {

FILE: src/app.rs
  type Mode (line 114) | pub enum Mode {
  type Flags (line 120) | pub struct Flags {
  type Action (line 131) | pub enum Action {
    method message (line 201) | const fn message(&self, entity_opt: Option<Entity>) -> Message {
  type Message (line 282) | type Message = Message;
  method message (line 284) | fn message(&self) -> Message {
  type PreviewItem (line 290) | pub struct PreviewItem(pub Box<tab::Item>);
  method eq (line 293) | fn eq(&self, other: &Self) -> bool {
  type PreviewKind (line 301) | pub enum PreviewKind {
  type NavMenuAction (line 308) | pub enum NavMenuAction {
  type Message (line 321) | type Message = cosmic::Action<Message>;
  method message (line 323) | fn message(&self) -> Self::Message {
  type Message (line 330) | pub enum Message {
  type ContextPage (line 482) | pub enum ContextPage {
  type ArchiveType (line 491) | pub enum ArchiveType {
    method all (line 498) | pub const fn all() -> &'static [Self] {
    method extension (line 502) | pub const fn extension(&self) -> &str {
    method as_ref (line 511) | fn as_ref(&self) -> &str {
  type DialogPage (line 517) | pub enum DialogPage {
  type DialogPages (line 592) | pub struct DialogPages {
    method new (line 603) | pub const fn new() -> Self {
    method front (line 609) | pub fn front(&self) -> Option<&DialogPage> {
    method front_mut (line 613) | pub fn front_mut(&mut self) -> Option<&mut DialogPage> {
    method push_back (line 617) | pub fn push_back(&mut self, page: DialogPage) -> Task<Message> {
    method push_front (line 627) | pub fn push_front(&mut self, page: DialogPage) -> Task<Message> {
    method pop_front (line 638) | pub fn pop_front(&mut self) -> Option<(DialogPage, Task<Message>)> {
    method update_front (line 648) | pub fn update_front(&mut self, page: DialogPage) {
  method default (line 597) | fn default() -> Self {
  type FavoriteIndex (line 655) | pub struct FavoriteIndex(usize);
  type MimeAppMatch (line 658) | enum MimeAppMatch {
  type MounterData (line 664) | pub struct MounterData(MounterKey, MounterItem);
  type WindowKind (line 667) | pub enum WindowKind {
  type WatcherWrapper (line 676) | pub struct WatcherWrapper {
    method fmt (line 687) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  method clone (line 681) | fn clone(&self) -> Self {
  method eq (line 693) | fn eq(&self, _other: &Self) -> bool {
  type Window (line 698) | struct Window {
    method new (line 704) | fn new(kind: WindowKind) -> Self {
  type App (line 713) | pub struct App {
    method clipboard_has_content (line 774) | fn clipboard_has_content(&self) -> bool {
    method push_dialog (line 778) | fn push_dialog(&mut self, page: DialogPage, focus_id: Option<widget::I...
    method open_file (line 787) | fn open_file(&mut self, paths: &[impl AsRef<Path>]) -> Task<Message> {
    method launch_desktop_entries (line 885) | fn launch_desktop_entries(paths: &[impl AsRef<Path>]) {
    method launch_from_mime_cache (line 934) | fn launch_from_mime_cache<P>(&self, mime: &Mime, paths: &[P]) -> bool
    method exec_entry_action (line 981) | fn exec_entry_action(entry: &cosmic::desktop::DesktopEntryData, action...
    method destination_selection_dialog (line 1001) | fn destination_selection_dialog(
    method extract_to (line 1035) | fn extract_to(&mut self, paths: &[impl AsRef<Path>]) -> Task<Message> {
    method move_to (line 1044) | fn move_to(&mut self, paths: &[impl AsRef<Path>]) -> Task<Message> {
    method copy_to (line 1053) | fn copy_to(&mut self, paths: &[impl AsRef<Path>]) -> Task<Message> {
    method handle_overlap (line 1063) | fn handle_overlap(&mut self) {
    method open_tab_entity (line 1153) | fn open_tab_entity(
    method open_tab (line 1200) | fn open_tab(
    method delete (line 1217) | fn delete(&mut self, paths: impl IntoIterator<Item = PathBuf>) -> Task...
    method operation (line 1252) | fn operation(&mut self, operation: Operation) -> Task<Message> {
    method join_operations (line 1292) | fn join_operations(&mut self, operations: Vec<Operation>) -> Task<Mess...
    method handle_completed_operations (line 1321) | fn handle_completed_operations(
    method handle_operation_errors (line 1397) | fn handle_operation_errors(&mut self, errors: Vec<(u64, OperationError...
    method remove_window (line 1442) | fn remove_window(&mut self, id: &window::Id) {
    method rescan_operation_selection (line 1460) | fn rescan_operation_selection(&mut self, op_sel: OperationSelection) -...
    method update_tab (line 1485) | fn update_tab(
    method rescan_tab (line 1498) | fn rescan_tab(
    method rescan_trash (line 1543) | fn rescan_trash(&mut self) -> Task<Message> {
    method rescan_recents (line 1562) | fn rescan_recents(&mut self) -> Task<Message> {
    method search_get (line 1581) | fn search_get(&self) -> Option<&str> {
    method search_set_active (line 1590) | fn search_set_active(&mut self, term_opt: Option<String>) -> Task<Mess...
    method search_set (line 1595) | fn search_set(
    method selected_paths (line 1657) | fn selected_paths(
    method set_cut (line 1672) | fn set_cut(&mut self, entity_opt: Option<Entity>) {
    method update_config (line 1679) | fn update_config(&mut self) -> Task<Message> {
    method update_desktop (line 1694) | fn update_desktop(&mut self) -> Task<Message> {
    method activate_nav_model_location (line 1719) | fn activate_nav_model_location(&mut self, location: &Location) {
    method close_context_menus (line 1734) | fn close_context_menus(&mut self) -> Task<Message> {
    method update_nav_model (line 1749) | fn update_nav_model(&mut self) {
    method update_notification (line 1858) | fn update_notification(&mut self) -> Task<Message> {
    method update_title (line 1880) | fn update_title(&mut self) -> Task<Message> {
    method update_watcher (line 1892) | fn update_watcher(&mut self) -> Task<Message> {
    method network_drive (line 1938) | fn network_drive(&self) -> Element<'_, Message> {
    method desktop_view_options (line 1969) | fn desktop_view_options(&self) -> Element<'_, Message> {
    method edit_history (line 2046) | fn edit_history(&self) -> Element<'_, Message> {
    method preview (line 2133) | fn preview<'a>(
    method settings (line 2205) | fn settings(&self) -> Element<'_, Message> {
    method get_apps_for_mime (line 2275) | fn get_apps_for_mime(&self, mime_type: &Mime) -> Vec<(&MimeApp, MimeAp...
    method update_favorites (line 2315) | fn update_favorites(&mut self, path_changes: &[(impl AsRef<Path>, impl...
  type Executor (line 2363) | type Executor = executor::Default;
  type Flags (line 2366) | type Flags = Flags;
  type Message (line 2369) | type Message = Message;
  constant APP_ID (line 2372) | const APP_ID: &'static str = "com.system76.CosmicFiles";
  method core (line 2374) | fn core(&self) -> &Core {
  method core_mut (line 2378) | fn core_mut(&mut self) -> &mut Core {
  method init (line 2383) | fn init(mut core: Core, flags: Self::Flags) -> (Self, Task<Self::Message...
  method nav_bar (line 2535) | fn nav_bar(&self) -> Option<Element<'_, cosmic::Action<Self::Message>>> {
  method nav_context_menu (line 2569) | fn nav_context_menu(
  method nav_model (line 2662) | fn nav_model(&self) -> Option<&segmented_button::SingleSelectModel> {
  method on_nav_select (line 2669) | fn on_nav_select(&mut self, entity: Entity) -> Task<Self::Message> {
  method on_app_exit (line 2768) | fn on_app_exit(&mut self) -> Option<Message> {
  method on_close_requested (line 2772) | fn on_close_requested(&self, id: window::Id) -> Option<Self::Message> {
  method on_context_drawer (line 2776) | fn on_context_drawer(&mut self) -> Task<Self::Message> {
  method on_escape (line 2786) | fn on_escape(&mut self) -> Task<Self::Message> {
  method update (line 2847) | fn update(&mut self, message: Self::Message) -> Task<Self::Message> {
  method context_drawer (line 5430) | fn context_drawer(&self) -> Option<context_drawer::ContextDrawer<'_, Mes...
  method dialog (line 5502) | fn dialog(&self) -> Option<Element<'_, Message>> {
  method footer (line 6272) | fn footer(&self) -> Option<Element<'_, Message>> {
  method header_start (line 6386) | fn header_start(&self) -> Vec<Element<'_, Self::Message>> {
  method header_end (line 6397) | fn header_end(&self) -> Vec<Element<'_, Self::Message>> {
  method view (line 6433) | fn view(&self) -> Element<'_, Self::Message> {
  method view_window (line 6504) | fn view_window(&self, id: WindowId) -> Element<'_, Self::Message> {
  method system_theme_update (line 6598) | fn system_theme_update(
  method subscription (line 6606) | fn subscription(&self) -> Subscription<Self::Message> {
  constant NUM_FILES (line 7043) | pub const NUM_FILES: usize = 2;
  constant NUM_HIDDEN (line 7044) | pub const NUM_HIDDEN: usize = 1;
  constant NUM_DIRS (line 7045) | pub const NUM_DIRS: usize = 2;
  constant NUM_NESTED (line 7046) | pub const NUM_NESTED: usize = 1;
  constant NAME_LEN (line 7047) | pub const NAME_LEN: usize = 5;
  function file_flat_hier (line 7052) | pub fn file_flat_hier<D: AsRef<Path>>(dir: D, n: usize, prefix: &str) ->...
  function rand_string (line 7068) | fn rand_string(len: usize) -> String {
  function simple_fs (line 7082) | pub fn simple_fs(
  function empty_fs (line 7135) | pub fn empty_fs() -> io::Result<TempDir> {
  function sort_files (line 7144) | pub fn sort_files(a: &Path, b: &Path) -> Ordering {
  function read_dir_sorted (line 7162) | pub fn read_dir_sorted(path: &Path) -> io::Result<Vec<PathBuf>> {
  function filter_dirs (line 7173) | pub fn filter_dirs(path: &Path) -> io::Result<impl Iterator<Item = PathB...
  function filter_files (line 7183) | pub fn filter_files(path: &Path) -> io::Result<impl Iterator<Item = Path...
  function tab_click_new (line 7193) | pub fn tab_click_new(
  function eq_path_item (line 7225) | pub fn eq_path_item(path: &Path, item: &Item) -> bool {
  function assert_eq_tab_path (line 7253) | pub fn assert_eq_tab_path(tab: &Tab, path: &Path) {
  function assert_eq_tab_path_contents (line 7269) | pub fn assert_eq_tab_path_contents(tab: &Tab, path: &Path) {

FILE: src/archive.rs
  constant SUPPORTED_ARCHIVE_TYPES (line 14) | pub const SUPPORTED_ARCHIVE_TYPES: &[&str] = &[
  constant SUPPORTED_EXTENSIONS (line 33) | pub const SUPPORTED_EXTENSIONS: &[&str] = &[
  function extract (line 43) | pub fn extract(
  function zip_extract (line 107) | fn zip_extract<R: io::Read + io::Seek, P: AsRef<Path>>(
  function zip_date_time_to_system_time (line 291) | fn zip_date_time_to_system_time(date_time: zip::DateTime) -> Option<Syst...
  function system_time_to_zip_date_time (line 309) | pub fn system_time_to_zip_date_time(system_time: SystemTime) -> Option<z...

FILE: src/channel.rs
  function channel (line 9) | pub fn channel<Message>() -> (Sender<Message>, Receiver<Message>) {
  type Channel (line 20) | struct Channel<Message> {
  type Sender (line 28) | pub struct Sender<Message>(Arc<Channel<Message>>);
  function send (line 31) | pub fn send(&self, message: Message) {
  method drop (line 38) | fn drop(&mut self) {
  type Receiver (line 44) | pub struct Receiver<Message>(Arc<Channel<Message>>);
  function recv (line 48) | pub async fn recv(&self) -> Option<Message> {
  function try_recv (line 70) | pub fn try_recv(&self) -> Option<Message> {

FILE: src/clipboard.rs
  type ClipboardKind (line 12) | pub enum ClipboardKind {
  type ClipboardCopy (line 18) | pub struct ClipboardCopy {
    method new (line 26) | pub fn new<P: AsRef<Path>>(kind: ClipboardKind, paths: impl IntoIterat...
  method available (line 91) | fn available(&self) -> Cow<'static, [String]> {
  method as_bytes (line 95) | fn as_bytes(&self, mime_type: &str) -> Option<Cow<'static, [u8]>> {
  type ClipboardPaste (line 108) | pub struct ClipboardPaste {
    type Error (line 123) | type Error = Box<dyn Error>;
    method try_from (line 124) | fn try_from(value: (Vec<u8>, String)) -> Result<Self, Self::Error> {
  method allowed (line 114) | fn allowed() -> Cow<'static, [String]> {
  type ClipboardPasteImage (line 170) | pub struct ClipboardPasteImage {
    type Error (line 201) | type Error = Box<dyn Error>;
    method try_from (line 202) | fn try_from(value: (Vec<u8>, String)) -> Result<Self, Self::Error> {
    method extension (line 217) | pub fn extension(&self) -> Option<&'static str> {
  method allowed (line 176) | fn allowed() -> Cow<'static, [String]> {
  type ClipboardPasteVideo (line 238) | pub struct ClipboardPasteVideo {
    type Error (line 263) | type Error = Box<dyn Error>;
    method try_from (line 264) | fn try_from(value: (Vec<u8>, String)) -> Result<Self, Self::Error> {
    method extension (line 279) | pub fn extension(&self) -> Option<&'static str> {
  method allowed (line 244) | fn allowed() -> Cow<'static, [String]> {
  type ClipboardPasteText (line 299) | pub struct ClipboardPasteText {
    type Error (line 316) | type Error = Box<dyn Error>;
    method try_from (line 317) | fn try_from(value: (Vec<u8>, String)) -> Result<Self, Self::Error> {
  method allowed (line 304) | fn allowed() -> Cow<'static, [String]> {
  type ClipboardCache (line 334) | pub enum ClipboardCache {

FILE: src/config.rs
  constant CONFIG_VERSION (line 19) | pub const CONFIG_VERSION: u64 = 1;
  constant ICON_SIZE_LIST (line 22) | pub const ICON_SIZE_LIST: u16 = 32;
  constant ICON_SIZE_LIST_CONDENSED (line 23) | pub const ICON_SIZE_LIST_CONDENSED: u16 = 48;
  constant ICON_SIZE_GRID (line 24) | pub const ICON_SIZE_GRID: u16 = 64;
  constant ICON_SCALE_MAX (line 26) | pub const ICON_SCALE_MAX: u16 = 5;
  type AppTheme (line 35) | pub enum AppTheme {
    method theme (line 42) | pub fn theme(&self) -> theme::Theme {
  type Favorite (line 60) | pub enum Favorite {
    method from_path (line 76) | pub fn from_path(path: PathBuf) -> Self {
    method path_opt (line 91) | pub fn path_opt(&self) -> Option<PathBuf> {
  type TypeToSearch (line 106) | pub enum TypeToSearch {
  type State (line 114) | pub struct State {
    method load (line 132) | pub fn load() -> (Option<cosmic_config::Config>, Self) {
    method subscription (line 151) | pub fn subscription() -> Subscription<cosmic_config::Update<Self>> {
  method default (line 119) | fn default() -> Self {
  type Config (line 163) | pub struct Config {
    method load (line 177) | pub fn load() -> (Option<cosmic_config::Config>, Self) {
    method subscription (line 196) | pub fn subscription() -> Subscription<cosmic_config::Update<Self>> {
    method dialog_tab (line 206) | pub const fn dialog_tab(&self) -> TabConfig {
  method default (line 219) | fn default() -> Self {
  type DesktopConfig (line 244) | pub struct DesktopConfig {
    method grid_spacing_for (line 265) | pub fn grid_spacing_for(&self, space: u16) -> u16 {
  method default (line 253) | fn default() -> Self {
  type DialogConfig (line 272) | pub struct DialogConfig {
  method default (line 286) | fn default() -> Self {
  type ThumbCfg (line 298) | pub struct ThumbCfg {
  method default (line 305) | fn default() -> Self {
  type TabConfig (line 321) | pub struct TabConfig {
  method default (line 339) | fn default() -> Self {
  type IconSizes (line 353) | pub struct IconSizes {
    method list (line 368) | pub fn list(&self) -> u16 {
    method list_condensed (line 372) | pub fn list_condensed(&self) -> u16 {
    method grid (line 376) | pub fn grid(&self) -> u16 {
  method default (line 359) | fn default() -> Self {
  constant TIME_CONFIG_ID (line 381) | pub const TIME_CONFIG_ID: &str = "com.system76.CosmicAppletTime";
  type TimeConfig (line 385) | pub struct TimeConfig {

FILE: src/context_action.rs
  type ContextActionSelection (line 11) | pub enum ContextActionSelection {
  type ContextActionPreset (line 23) | pub struct ContextActionPreset {
    method matches_selection (line 31) | pub fn matches_selection(&self, selected: usize, selected_dir: usize) ...
    method run (line 43) | pub fn run(&self, paths: &[PathBuf]) {
  function run (line 74) | pub fn run(actions: &[ContextActionPreset], action: usize, paths: &[Path...

FILE: src/dialog.rs
  type DialogMessage (line 46) | pub struct DialogMessage(cosmic::Action<Message>);
  type DialogResult (line 49) | pub enum DialogResult {
  type DialogKind (line 55) | pub enum DialogKind {
    method title (line 64) | pub fn title(&self) -> String {
    method accept_label (line 74) | pub fn accept_label(&self) -> String {
    method is_dir (line 81) | pub const fn is_dir(&self) -> bool {
    method multiple (line 85) | pub const fn multiple(&self) -> bool {
    method save (line 89) | pub const fn save(&self) -> bool {
  type DialogChoiceOption (line 95) | pub struct DialogChoiceOption {
    method as_ref (line 101) | fn as_ref(&self) -> &str {
  type DialogChoice (line 107) | pub enum DialogChoice {
  type DialogFilterPattern (line 122) | pub enum DialogFilterPattern {
  type DialogFilter (line 128) | pub struct DialogFilter {
    method as_ref (line 134) | fn as_ref(&self) -> &str {
  type DialogLabelSpan (line 140) | pub struct DialogLabelSpan {
  type DialogLabel (line 146) | pub struct DialogLabel {
    method from (line 152) | fn from(text: T) -> Self {
  function from (line 193) | fn from(label: &'a DialogLabel) -> Self {
  type DialogSettings (line 203) | pub struct DialogSettings {
    method new (line 210) | pub fn new() -> Self {
    method app_id (line 214) | pub fn app_id(mut self, app_id: String) -> Self {
    method kind (line 219) | pub fn kind(mut self, kind: DialogKind) -> Self {
    method path (line 224) | pub fn path(mut self, path: PathBuf) -> Self {
  method default (line 231) | fn default() -> Self {
  type Dialog (line 240) | pub struct Dialog<M> {
  function new (line 247) | pub fn new(
  function set_title (line 308) | pub fn set_title(&mut self, title: impl Into<String>) -> Task<M> {
  function set_accept_label (line 318) | pub fn set_accept_label(&mut self, accept_label: impl AsRef<str>) {
  function choices (line 322) | pub fn choices(&self) -> &[DialogChoice] {
  function set_choices (line 326) | pub fn set_choices(&mut self, choices: impl Into<Vec<DialogChoice>>) {
  function filters (line 330) | pub fn filters(&self) -> (&[DialogFilter], Option<usize>) {
  function set_filters (line 334) | pub fn set_filters(
  function subscription (line 349) | pub fn subscription(&self) -> Subscription<M> {
  function update (line 357) | pub fn update(&mut self, message: DialogMessage) -> Task<M> {
  function view (line 413) | pub fn view(&self, window_id: window::Id) -> Element<'_, M> {
  function window_id (line 420) | pub const fn window_id(&self) -> window::Id {
  function contains_surface (line 425) | pub fn contains_surface(&self, id: &window::Id) -> bool {
  type DialogPage (line 431) | enum DialogPage {
  type Flags (line 437) | struct Flags {
  type Message (line 448) | enum Message {
    method from (line 492) | fn from(app_message: AppMessage) -> Self {
  type MounterData (line 515) | pub struct MounterData(MounterKey, MounterItem);
  type WatcherWrapper (line 517) | struct WatcherWrapper {
    method fmt (line 528) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  method clone (line 522) | fn clone(&self) -> Self {
  method eq (line 534) | fn eq(&self, _other: &Self) -> bool {
  type App (line 540) | struct App {
    method button_view (line 570) | fn button_view(&self) -> Element<'_, Message> {
    method preview (line 683) | fn preview<'a>(&'a self, kind: &'a PreviewKind) -> Element<'a, tab::Me...
    method rescan_tab (line 732) | fn rescan_tab(&self, selection_paths: Option<Vec<PathBuf>>) -> Task<Me...
    method search_get (line 769) | fn search_get(&self) -> Option<&str> {
    method search_set (line 776) | fn search_set(&mut self, term_opt: Option<String>) -> Task<Message> {
    method update_config (line 826) | fn update_config(&mut self) -> Task<Message> {
    method with_dialog_config (line 833) | fn with_dialog_config<F: Fn(&mut DialogConfig)>(&mut self, f: F) -> Ta...
    method activate_nav_model_location (line 854) | fn activate_nav_model_location(&mut self, location: &Location) {
    method close_context_menus (line 869) | fn close_context_menus(&mut self) -> Task<Message> {
    method update_nav_model (line 878) | fn update_nav_model(&mut self) {
    method update_title (line 949) | fn update_title(&mut self) -> Task<Message> {
    method update_watcher (line 954) | fn update_watcher(&mut self) -> Task<Message> {
  type Executor (line 1001) | type Executor = executor::Default;
  type Flags (line 1004) | type Flags = Flags;
  type Message (line 1007) | type Message = Message;
  constant APP_ID (line 1010) | const APP_ID: &'static str = "com.system76.CosmicFilesDialog";
  method core (line 1012) | fn core(&self) -> &Core {
  method core_mut (line 1016) | fn core_mut(&mut self) -> &mut Core {
  method init (line 1021) | fn init(mut core: Core, flags: Self::Flags) -> (Self, Task<Message>) {
  method context_drawer (line 1088) | fn context_drawer(&self) -> Option<context_drawer::ContextDrawer<'_, Mes...
  method dialog (line 1117) | fn dialog(&self) -> Option<Element<'_, Message>> {
  method footer (line 1214) | fn footer(&self) -> Option<Element<'_, Message>> {
  method header_end (line 1218) | fn header_end(&self) -> Vec<Element<'_, Message>> {
  method nav_bar (line 1269) | fn nav_bar(&self) -> Option<Element<'_, cosmic::Action<Self::Message>>> {
  method nav_model (line 1296) | fn nav_model(&self) -> Option<&segmented_button::SingleSelectModel> {
  method on_app_exit (line 1300) | fn on_app_exit(&mut self) -> Option<Message> {
  method on_nav_select (line 1305) | fn on_nav_select(&mut self, entity: segmented_button::Entity) -> Task<Me...
  method on_escape (line 1322) | fn on_escape(&mut self) -> Task<Message> {
  method update (line 1370) | fn update(&mut self, message: Message) -> Task<Message> {
  method view (line 2009) | fn view(&self) -> Element<'_, Message> {
  method subscription (line 2038) | fn subscription(&self) -> Subscription<Message> {

FILE: src/key_bind.rs
  function key_binds (line 10) | pub fn key_binds(mode: &tab::Mode) -> HashMap<KeyBind, Action> {

FILE: src/large_image.rs
  constant RGBA_BYTES_PER_PIXEL (line 7) | pub const RGBA_BYTES_PER_PIXEL: u64 = 4;
  constant SYSTEM_MEMORY_RESERVE_MB (line 12) | const SYSTEM_MEMORY_RESERVE_MB: u64 = 500;
  constant GALLERY_MEMORY_LIMIT_MB (line 17) | const GALLERY_MEMORY_LIMIT_MB: u64 = 2000;
  constant ATLAS_FRAGMENT_SIZE (line 22) | pub const ATLAS_FRAGMENT_SIZE: u32 = 4096;
  constant MB_TO_BYTES (line 25) | pub const MB_TO_BYTES: u64 = 1024 * 1024;
  constant DECIMAL_MB_TO_BYTES (line 29) | pub const DECIMAL_MB_TO_BYTES: u64 = 1000 * 1000;
  constant DISPLAY_SCALE_FACTOR (line 34) | const DISPLAY_SCALE_FACTOR: f32 = 1.5;
  function calculate_target_dimensions (line 41) | pub fn calculate_target_dimensions(
  function exceeds_memory_limit (line 86) | pub fn exceeds_memory_limit(width: u32, height: u32, memory_limit_mb: u6...
  function should_use_tiling (line 98) | pub fn should_use_tiling(width: u32, height: u32) -> bool {
  function should_use_dedicated_worker (line 107) | pub fn should_use_dedicated_worker(
  function get_image_dimensions (line 158) | pub fn get_image_dimensions(path: &Path) -> Option<(u32, u32)> {
  function calculate_image_memory (line 184) | fn calculate_image_memory(width: u32, height: u32) -> Option<u64> {
  function check_ram_available (line 192) | fn check_ram_available(width: u32, height: u32) -> (bool, Option<String>) {
  function check_ram_available (line 238) | fn check_ram_available(_width: u32, _height: u32) -> (bool, Option<Strin...
  function check_memory_available (line 243) | pub fn check_memory_available(width: u32, height: u32) -> (bool, Option<...
  function decode_large_image (line 262) | pub async fn decode_large_image(
  type LargeImageManager (line 351) | pub struct LargeImageManager {
    method new (line 367) | pub fn new() -> Self {
    method is_decoding (line 371) | pub fn is_decoding(&self, path: &Path) -> bool {
    method get_decoded (line 375) | pub fn get_decoded(&self, path: &Path) -> Option<&widget::image::Handl...
    method get_error (line 379) | pub fn get_error(&self, path: &Path) -> Option<&String> {
    method store_decoded_with_generation (line 385) | pub fn store_decoded_with_generation(
    method store_error (line 419) | pub fn store_error(&mut self, path: PathBuf, error: String) {
    method clear_error (line 424) | pub fn clear_error(&mut self, path: &Path) {
    method clear_cache (line 428) | pub fn clear_cache(&mut self) {
    method cache_size (line 436) | pub fn cache_size(&self) -> usize {
    method cache_is_empty (line 440) | pub fn cache_is_empty(&self) -> bool {
    method needs_redecode_for_size (line 447) | pub fn needs_redecode_for_size(
    method try_decode (line 497) | pub fn try_decode(
    method ensure_memory_available (line 557) | fn ensure_memory_available(&mut self, path: &Path, width: u32, height:...

FILE: src/lib.rs
  type FxOrderMap (line 39) | pub(crate) type FxOrderMap<K, V> = ordermap::OrderMap<K, V, rustc_hash::...
  function err_str (line 41) | pub(crate) fn err_str<T: ToString>(err: T) -> String {
  function desktop_dir (line 45) | pub fn desktop_dir() -> PathBuf {
  function home_dir (line 58) | pub fn home_dir() -> PathBuf {
  function is_wayland (line 71) | pub fn is_wayland() -> bool {
  function desktop (line 80) | pub fn desktop() -> Result<(), Box<dyn std::error::Error>> {
  function main (line 130) | pub fn main() -> Result<(), Box<dyn std::error::Error>> {

FILE: src/load_image.rs
  function loaded_image (line 9) | pub fn loaded_image<'a, Message: 'static, Theme>(
  type LoadedImage (line 25) | pub struct LoadedImage<'a, Message, Theme, Renderer>
  function new (line 39) | pub(crate) fn new(handle: <Renderer as iced_core::image::Renderer>::Hand...
  function children (line 52) | fn children(&self) -> Vec<Tree> {
  function diff (line 56) | fn diff(&mut self, tree: &mut Tree) {
  function size (line 60) | fn size(&self) -> iced_core::Size<Length> {
  function layout (line 64) | fn layout(
  function operate (line 78) | fn operate(
  function update (line 100) | fn update(
  function mouse_interaction (line 127) | fn mouse_interaction(
  function draw (line 145) | fn draw(
  function overlay (line 170) | fn overlay<'b>(
  function drag_destinations (line 191) | fn drag_destinations(
  function from (line 215) | fn from(c: LoadedImage<'a, Message, Theme, Renderer>) -> Element<'a, Mes...

FILE: src/localize.rs
  type Localizations (line 14) | struct Localizations;
  function localizer (line 85) | pub fn localizer() -> Box<dyn Localizer> {
  function localize (line 89) | pub fn localize() {

FILE: src/main.rs
  function main (line 8) | fn main() -> Result<(), Box<dyn std::error::Error>> {

FILE: src/menu.rs
  function menu_button_optional (line 42) | const fn menu_button_optional(
  function context_menu (line 54) | pub fn context_menu<'a>(
  function dialog_menu (line 435) | pub fn dialog_menu(
  function menu_bar (line 580) | pub fn menu_bar<'a>(
  function location_context_menu (line 781) | pub fn location_context_menu<'a>(ancestor_index: usize) -> Element<'a, t...

FILE: src/mime_app.rs
  function exec_to_command (line 17) | pub fn exec_to_command(
  type MimeApp (line 130) | pub struct MimeApp {
    method command (line 141) | pub fn command<O: AsRef<OsStr>>(&self, path_opt: &[O]) -> Option<Vec<p...
    method as_ref (line 153) | fn as_ref(&self) -> &str {
    method from (line 160) | fn from(app: &desktop::DesktopEntryData) -> Self {
  function filename_eq (line 178) | fn filename_eq(path_opt: &Option<PathBuf>, filename: &str) -> bool {
  type MimeAppCache (line 185) | pub struct MimeAppCache {
    method new (line 193) | pub fn new() -> Self {
    method reload (line 205) | pub fn reload(&mut self) {}
    method reload (line 209) | pub fn reload(&mut self) {
    method apps (line 335) | pub fn apps(&self) -> &[MimeApp] {
    method get (line 339) | pub fn get(&self, key: &Mime) -> &[MimeApp] {
    method icons (line 343) | pub fn icons(&self, key: &Mime) -> &[widget::icon::Handle] {
    method get_default_terminal (line 347) | fn get_default_terminal(&self) -> Option<String> {
    method terminal (line 362) | pub fn terminal(&self) -> Option<&MimeApp> {
    method set_default (line 388) | pub fn set_default(&mut self, mime: Mime, id: String) {
    method set_default (line 395) | pub fn set_default(&mut self, mime: Mime, mut id: String) {
  method default (line 434) | fn default() -> Self {
  function keys_within_words (line 444) | fn keys_within_words() {
  function no_path_f_field_code (line 461) | fn no_path_f_field_code() {
  function one_path_f_field_code (line 475) | fn one_path_f_field_code() {
  function one_path_F_field_code (line 493) | fn one_path_F_field_code() {
  function one_path_u_field_code (line 512) | fn one_path_u_field_code() {
  function one_path_U_field_code (line 532) | fn one_path_U_field_code() {
  function mult_path_f_field_code (line 546) | fn mult_path_f_field_code() {
  function mult_path_F_field_code (line 567) | fn mult_path_F_field_code() {
  function mult_path_u_field_code (line 589) | fn mult_path_u_field_code() {
  function mult_path_U_field_code (line 614) | fn mult_path_U_field_code() {
  function flatpak_style_exec (line 637) | fn flatpak_style_exec() {
  function multiple_field_codes (line 666) | fn multiple_field_codes() {
  function sandwiched_field_code (line 692) | fn sandwiched_field_code() {

FILE: src/mime_icon.rs
  constant FALLBACK_MIME_ICON (line 10) | pub const FALLBACK_MIME_ICON: &str = "text-x-generic";
  type MimeIconKey (line 13) | struct MimeIconKey {
  type MimeIconCache (line 18) | struct MimeIconCache {
    method new (line 25) | pub fn new() -> Self {
    method get (line 34) | pub fn get(&mut self, _key: MimeIconKey) -> Option<icon::Handle> {
    method get (line 39) | pub fn get(&mut self, key: MimeIconKey) -> Option<icon::Handle> {
  function mime_for_path (line 63) | pub fn mime_for_path(
  function mime_for_path (line 72) | pub fn mime_for_path(
  function mime_icon (line 111) | pub fn mime_icon(mime: Mime, size: u16) -> icon::Handle {
  function parent_mime_types (line 120) | pub fn parent_mime_types(_mime: &Mime) -> Option<Vec<Mime>> {
  function parent_mime_types (line 125) | pub fn parent_mime_types(mime: &Mime) -> Option<Vec<Mime>> {

FILE: src/mounter/gvfs.rs
  constant TARGET_URI_ATTRIBUTE (line 19) | const TARGET_URI_ATTRIBUTE: &str = "standard::target-uri";
  function resolve_uri (line 21) | fn resolve_uri(uri: &str) -> (String, gio::File) {
  function gio_icon_to_path (line 38) | fn gio_icon_to_path(icon: &gio::Icon, size: u16) -> Option<PathBuf> {
  function items (line 51) | fn items(monitor: &gio::VolumeMonitor, sizes: IconSizes) -> MounterItems {
  function network_scan (line 106) | fn network_scan(uri: &str, sizes: IconSizes) -> Result<Vec<tab::Item>, S...
  function dir_info (line 224) | fn dir_info(uri: &str) -> Result<(String, String, Option<PathBuf>), glib...
  function mount_op (line 235) | fn mount_op(
  type Cmd (line 285) | enum Cmd {
  type Event (line 305) | enum Event {
  type ItemKind (line 314) | enum ItemKind {
  type Item (line 321) | pub struct Item {
    method name (line 334) | pub fn name(&self) -> String {
    method is_mounted (line 338) | pub const fn is_mounted(&self) -> bool {
    method is_remote (line 342) | pub const fn is_remote(&self) -> bool {
    method uri (line 346) | pub fn uri(&self) -> String {
    method icon (line 350) | pub fn icon(&self, symbolic: bool) -> Option<widget::icon::Handle> {
    method path (line 359) | pub fn path(&self) -> Option<PathBuf> {
  type Gvfs (line 364) | pub struct Gvfs {
    method new (line 370) | pub fn new() -> Self {
  method items (line 638) | fn items(&self, sizes: IconSizes) -> Option<MounterItems> {
  method mount (line 644) | fn mount(&self, item: MounterItem) -> Task<()> {
  method network_drive (line 661) | fn network_drive(&self, uri: String) -> Task<()> {
  method network_scan (line 678) | fn network_scan(&self, uri: &str, sizes: IconSizes) -> Option<Result<Vec...
  method dir_info (line 686) | fn dir_info(&self, uri: &str) -> Option<(String, String, Option<PathBuf>...
  method unmount (line 694) | fn unmount(&self, item: MounterItem) -> Task<()> {
  method subscription (line 701) | fn subscription(&self) -> Subscription<MounterMessage> {

FILE: src/mounter/mod.rs
  type MounterAuth (line 16) | pub struct MounterAuth {
    method fmt (line 27) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  type MounterItem (line 46) | pub enum MounterItem {
    method name (line 54) | pub fn name(&self) -> String {
    method uri (line 62) | pub fn uri(&self) -> String {
    method is_mounted (line 70) | pub fn is_mounted(&self) -> bool {
    method icon (line 78) | pub fn icon(&self, symbolic: bool) -> Option<widget::icon::Handle> {
    method path (line 86) | pub fn path(&self) -> Option<PathBuf> {
    method is_remote (line 94) | pub fn is_remote(&self) -> bool {
  type MounterItems (line 103) | pub type MounterItems = Vec<MounterItem>;
  type MounterMessage (line 106) | pub enum MounterMessage {
  type Mounter (line 113) | pub trait Mounter: Send + Sync {
    method items (line 114) | fn items(&self, sizes: IconSizes) -> Option<MounterItems>;
    method mount (line 116) | fn mount(&self, item: MounterItem) -> Task<()>;
    method network_drive (line 117) | fn network_drive(&self, uri: String) -> Task<()>;
    method network_scan (line 118) | fn network_scan(&self, uri: &str, sizes: IconSizes) -> Option<Result<V...
    method dir_info (line 119) | fn dir_info(&self, uri: &str) -> Option<(String, String, Option<PathBu...
    method unmount (line 120) | fn unmount(&self, item: MounterItem) -> Task<()>;
    method subscription (line 121) | fn subscription(&self) -> Subscription<MounterMessage>;
  type MounterKey (line 125) | pub struct MounterKey(pub &'static str);
  type MounterMap (line 126) | pub type MounterMap = BTreeMap<MounterKey, Box<dyn Mounter>>;
  type Mounters (line 127) | pub type Mounters = Arc<MounterMap>;
  function mounters (line 129) | pub fn mounters() -> Mounters {

FILE: src/mouse_area.rs
  type MouseArea (line 20) | pub struct MouseArea<'a, Message> {
  function on_auto_scroll (line 49) | pub fn on_auto_scroll(mut self, message: impl OnAutoScroll<'a, Message>)...
  function on_drag (line 56) | pub fn on_drag(mut self, message: impl OnDrag<'a, Message>) -> Self {
  function on_drag_end (line 63) | pub fn on_drag_end(mut self, message: impl OnMouseButton<'a, Message>) -...
  function on_double_click (line 70) | pub fn on_double_click(mut self, message: impl OnMouseButton<'a, Message...
  function on_press (line 77) | pub fn on_press(mut self, message: impl OnMouseButton<'a, Message>) -> S...
  function on_release (line 84) | pub fn on_release(mut self, message: impl OnMouseButton<'a, Message>) ->...
  function on_resize (line 91) | pub fn on_resize(mut self, message: impl OnResize<'a, Message>) -> Self {
  function on_right_press (line 98) | pub fn on_right_press(mut self, message: impl OnMouseButton<'a, Message>...
  function on_right_press_no_capture (line 105) | pub fn on_right_press_no_capture(mut self) -> Self {
  function wayland_on_right_press_window_position (line 112) | pub fn wayland_on_right_press_window_position(mut self) -> Self {
  function on_right_press_window_position (line 122) | pub fn on_right_press_window_position(mut self) -> Self {
  function on_right_release (line 129) | pub fn on_right_release(mut self, message: impl OnMouseButton<'a, Messag...
  function on_middle_press (line 136) | pub fn on_middle_press(mut self, message: impl OnMouseButton<'a, Message...
  function on_middle_release (line 143) | pub fn on_middle_release(mut self, message: impl OnMouseButton<'a, Messa...
  function on_back_press (line 150) | pub fn on_back_press(mut self, message: impl OnMouseButton<'a, Message>)...
  function on_back_release (line 157) | pub fn on_back_release(mut self, message: impl OnMouseButton<'a, Message...
  function on_forward_press (line 164) | pub fn on_forward_press(mut self, message: impl OnMouseButton<'a, Messag...
  function on_forward_release (line 171) | pub fn on_forward_release(mut self, message: impl OnMouseButton<'a, Mess...
  function on_scroll (line 178) | pub fn on_scroll(mut self, message: impl OnScroll<'a, Message>) -> Self {
  function on_enter (line 185) | pub fn on_enter(mut self, message: impl OnEnterExit<'a, Message>) -> Self {
  function on_exit (line 192) | pub fn on_exit(mut self, message: impl OnEnterExit<'a, Message>) -> Self {
  function show_drag_rect (line 198) | pub const fn show_drag_rect(mut self, show_drag_rect: bool) -> Self {
  function with_id (line 205) | pub fn with_id(mut self, id: Id) -> Self {
  type OnAutoScroll (line 211) | pub trait OnAutoScroll<'a, Message>: Fn(Option<f32>) -> Message + 'a {}
  type OnMouseButton (line 214) | pub trait OnMouseButton<'a, Message>: Fn(Option<Point>) -> Message + 'a {}
  type OnDrag (line 217) | pub trait OnDrag<'a, Message>: Fn(Option<Rectangle>) -> Message + 'a {}
  type OnResize (line 220) | pub trait OnResize<'a, Message>: Fn(Rectangle) -> Message + 'a {}
  type OnScroll (line 223) | pub trait OnScroll<'a, Message>: Fn(mouse::ScrollDelta) -> Option<Messag...
  type OnEnterExit (line 229) | pub trait OnEnterExit<'a, Message>: Fn() -> Message + 'a {}
  type State (line 234) | struct State {
    method drag_rect (line 244) | fn drag_rect(&self, cursor: mouse::Cursor) -> Option<Rectangle> {
    method click (line 261) | fn click(&mut self, pos: Point) -> mouse::Click {
  function new (line 290) | pub fn new(content: impl Into<Element<'a, Message>>) -> Self {
  function tag (line 323) | fn tag(&self) -> tree::Tag {
  function state (line 327) | fn state(&self) -> tree::State {
  function children (line 331) | fn children(&self) -> Vec<Tree> {
  function diff (line 335) | fn diff(&mut self, tree: &mut Tree) {
  function size (line 339) | fn size(&self) -> Size<Length> {
  function layout (line 343) | fn layout(
  function operate (line 354) | fn operate(
  function update (line 366) | fn update(
  function mouse_interaction (line 403) | fn mouse_interaction(
  function draw (line 420) | fn draw(
  function overlay (line 465) | fn overlay<'b>(
  function drag_destinations (line 482) | fn drag_destinations(
  function id (line 497) | fn id(&self) -> Option<Id> {
  function set_id (line 501) | fn set_id(&mut self, id: Id) {
  function from (line 512) | fn from(area: MouseArea<'a, Message>) -> Self {
  function update (line 519) | fn update<Message: Clone>(

FILE: src/operation/controller.rs
  type ControllerState (line 9) | pub enum ControllerState {
  type ControllerInner (line 17) | struct ControllerInner {
  type Controller (line 24) | pub struct Controller {
    method check (line 43) | pub async fn check(&self) -> Result<(), ControllerState> {
    method progress (line 56) | pub fn progress(&self) -> f32 {
    method set_progress (line 60) | pub fn set_progress(&self, progress: f32) {
    method state (line 66) | pub fn state(&self) -> ControllerState {
    method set_state (line 71) | pub fn set_state(&self, state: ControllerState) {
    method is_cancelled (line 78) | pub fn is_cancelled(&self) -> bool {
    method cancel (line 82) | pub fn cancel(&self) {
    method is_failed (line 86) | pub fn is_failed(&self) -> bool {
    method is_paused (line 90) | pub fn is_paused(&self) -> bool {
    method pause (line 94) | pub fn pause(&self) {
    method until_paused (line 101) | pub async fn until_paused(&self) {
    method until_unpaused (line 114) | pub async fn until_unpaused(&self) {
    method unpause (line 127) | pub fn unpause(&self) {
  method default (line 30) | fn default() -> Self {
  method clone (line 135) | fn clone(&self) -> Self {
  method drop (line 144) | fn drop(&mut self) {

FILE: src/operation/mod.rs
  function handle_replace (line 29) | async fn handle_replace(
  function get_directory_name (line 71) | fn get_directory_name(file_name: &str) -> &str {
  type ReplaceResult (line 82) | pub enum ReplaceResult {
  function copy_or_move (line 89) | async fn copy_or_move(
  function sync_to_disk (line 216) | pub async fn sync_to_disk(
  function copy_unique_path (line 241) | pub fn copy_unique_path(from: &Path, to: &Path) -> PathBuf {
  function file_name (line 309) | fn file_name(path: &Path) -> Cow<'_, str> {
  function parent_name (line 314) | fn parent_name(path: &Path) -> Cow<'_, str> {
  function paths_parent_name (line 322) | fn paths_parent_name(paths: &[PathBuf]) -> Cow<'_, str> {
  type OperationSelection (line 342) | pub struct OperationSelection {
  type Operation (line 350) | pub enum Operation {
    method pending_text (line 474) | pub fn pending_text(&self, ratio: f32, state: ControllerState) -> Stri...
    method completed_text (line 555) | pub fn completed_text(&self) -> String {
    method show_progress_notification (line 620) | pub const fn show_progress_notification(&self) -> bool {
    method toast (line 641) | pub fn toast(&self) -> Option<String> {
    method perform (line 652) | pub async fn perform(
  type OperationErrorType (line 418) | pub enum OperationErrorType {
  type OperationError (line 423) | pub struct OperationError {
    method from_state (line 428) | pub fn from_state(state: ControllerState, controller: &Controller) -> ...
    method from_err (line 442) | pub fn from_err<T: ToString>(err: T, controller: &Controller) -> Self {
    method from_kind (line 450) | pub fn from_kind(kind: OperationErrorType, controller: &Controller) ->...
    method from_msg (line 455) | pub fn from_msg(m: impl Into<String>) -> Self {
    method fmt (line 465) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
  function wrap_compio_spawn_error (line 1225) | fn wrap_compio_spawn_error(err: Box<dyn std::any::Any + Send>) -> Operat...
  function operation_copy (line 1260) | pub async fn operation_copy(
  function copy_file_to_same_location (line 1300) | async fn copy_file_to_same_location() -> io::Result<()> {
  function copy_file_with_extension_to_same_loc (line 1334) | async fn copy_file_with_extension_to_same_loc() -> io::Result<()> {
  function copy_dir_to_same_location (line 1354) | async fn copy_dir_to_same_location() -> io::Result<()> {
  function copying_file_multiple_times_to_same_location (line 1379) | async fn copying_file_multiple_times_to_same_location() -> io::Result<()> {
  function copy_to_diff_dir_doesnt_dupe_files (line 1404) | async fn copy_to_diff_dir_doesnt_dupe_files() -> io::Result<()> {
  function copy_file_with_diff_name_to_diff_dir (line 1449) | async fn copy_file_with_diff_name_to_diff_dir() -> io::Result<()> {

FILE: src/operation/notifiers.rs
  type FileWritingNotifier (line 9) | pub struct FileWritingNotifier {
  function actively_writing_add (line 22) | pub fn actively_writing_add(path: PathBuf) {
  function actively_writing_remove (line 27) | pub fn actively_writing_remove(path: &Path) {
  function actively_writing_tick (line 34) | pub async fn actively_writing_tick() {
  function is_actively_writing_to (line 51) | pub fn is_actively_writing_to(path: &Path) -> bool {

FILE: src/operation/reader.rs
  type OpReader (line 9) | pub struct OpReader {
    method new (line 17) | pub fn new<P: AsRef<Path>>(path: P, controller: Controller) -> io::Res...
    method read (line 30) | fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {

FILE: src/operation/recursive.rs
  type GioCopyError (line 29) | pub enum GioCopyError {
  type Method (line 37) | pub enum Method {
  type Context (line 42) | pub struct Context {
    method new (line 65) | pub fn new(controller: Controller) -> Self {
    method recursive_copy_or_move (line 78) | pub async fn recursive_copy_or_move(
    method on_progress (line 247) | pub fn on_progress<F: OnProgress>(mut self, f: F) -> Self {
    method on_replace (line 252) | pub fn on_replace(mut self, f: impl OnReplace + 'static) -> Self {
    method replace (line 257) | async fn replace(&mut self, op: &Op) -> Result<ControlFlow<bool, PathB...
  type OnProgress (line 52) | pub trait OnProgress: Fn(&Op, &Progress) + 'static {}
  type OnReplace (line 55) | pub trait OnReplace:
  type Progress (line 288) | pub struct Progress {
  type OpKind (line 296) | pub enum OpKind {
  type Skip (line 306) | pub struct Skip {
  type Op (line 314) | pub struct Op {
    method move_cleanup_op (line 323) | fn move_cleanup_op(&self) -> Option<Self> {
    method run (line 339) | async fn run(&mut self, ctx: &mut Context, progress: Progress) -> Resu...
    method copy (line 439) | async fn copy(
    method gio_file_copy (line 596) | async fn gio_file_copy(

FILE: src/spawn_detached.rs
  function spawn_detached (line 4) | pub fn spawn_detached(command: &mut process::Command) -> io::Result<()> {

FILE: src/tab.rs
  constant DOUBLE_CLICK_DURATION (line 70) | pub const DOUBLE_CLICK_DURATION: Duration = Duration::from_millis(500);
  constant HOVER_DURATION (line 71) | pub const HOVER_DURATION: Duration = Duration::from_millis(1600);
  constant TYPE_SELECT_TIMEOUT (line 72) | pub const TYPE_SELECT_TIMEOUT: Duration = Duration::from_millis(1000);
  constant MAX_SEARCH_LATENCY (line 74) | const MAX_SEARCH_LATENCY: Duration = Duration::from_millis(20);
  constant MAX_SEARCH_RESULTS (line 75) | const MAX_SEARCH_RESULTS: usize = 200;
  constant THUMBNAIL_SIZE (line 77) | const THUMBNAIL_SIZE: u32 = (ICON_SIZE_GRID as u32) * (ICON_SCALE_MAX as...
  function button_appearance (line 147) | fn button_appearance(
  function button_style (line 209) | fn button_style(
  function folder_icon (line 270) | pub fn folder_icon(path: &PathBuf, icon_size: u16) -> widget::icon::Hand...
  function folder_icon_symbolic (line 276) | pub fn folder_icon_symbolic(path: &PathBuf, icon_size: u16) -> widget::i...
  function has_trailing_sep (line 286) | fn has_trailing_sep(path: &Path) -> bool {
  function tab_complete (line 294) | fn tab_complete(path: &Path) -> Result<Vec<(String, PathBuf)>, Box<dyn E...
  function format_size (line 336) | fn format_size(size: u64) -> String {
  constant MODE_SHIFT_USER (line 355) | const MODE_SHIFT_USER: u32 = 6;
  constant MODE_SHIFT_GROUP (line 356) | const MODE_SHIFT_GROUP: u32 = 3;
  constant MODE_SHIFT_OTHER (line 357) | const MODE_SHIFT_OTHER: u32 = 0;
  function get_mode_part (line 359) | const fn get_mode_part(mode: u32, shift: u32) -> u32 {
  function set_mode_part (line 363) | fn set_mode_part(mode: u32, shift: u32, bits: u32) -> u32 {
  function date_time_formatter (line 368) | fn date_time_formatter(military_time: bool) -> DateTimeFormatter<fieldse...
  function time_formatter (line 382) | fn time_formatter(military_time: bool) -> DateTimeFormatter<fieldsets::T> {
  type FormatTime (line 396) | struct FormatTime<'a> {
  function from_secs (line 403) | fn from_secs(
  method fmt (line 426) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  function format_time (line 440) | const fn format_time<'a>(
  function hidden_attribute (line 453) | fn hidden_attribute(_metadata: &Metadata) -> bool {
  function hidden_attribute (line 458) | fn hidden_attribute(metadata: &Metadata) -> bool {
  type FsKind (line 466) | pub enum FsKind {
  function fs_kind (line 473) | pub fn fs_kind(metadata: &Metadata) -> FsKind {
  function fs_kind (line 535) | pub fn fs_kind(_metadata: &Metadata) -> FsKind {
  function get_desktop_file_display_name (line 541) | fn get_desktop_file_display_name(path: &Path) -> Option<String> {
  function get_desktop_file_display_name (line 546) | fn get_desktop_file_display_name(path: &Path) -> Option<String> {
  function get_desktop_file_icon (line 560) | fn get_desktop_file_icon(path: &Path) -> Option<String> {
  function get_desktop_file_icon (line 565) | fn get_desktop_file_icon(path: &Path) -> Option<String> {
  function desktop_icon_handle (line 579) | fn desktop_icon_handle(icon: &str, size: u16) -> widget::icon::Handle {
  function parse_desktop_file (line 589) | pub fn parse_desktop_file(path: &Path) -> (Option<String>, Option<String...
  function display_name_for_file (line 604) | fn display_name_for_file(path: &Path, name: &str, get_from_gvfs: bool, i...
  function item_from_gvfs_info (line 628) | pub fn item_from_gvfs_info(path: PathBuf, file_info: gio::FileInfo, size...
  function item_from_search_item (line 728) | pub fn item_from_search_item(search_item: SearchItem, sizes: IconSizes) ...
  function item_from_entry (line 735) | pub fn item_from_entry(
  function item_from_trash_entry (line 859) | pub fn item_from_trash_entry(
  function get_filename_from_path (line 915) | fn get_filename_from_path(path: &Path) -> Result<String, String> {
  function item_from_path (line 930) | pub fn item_from_path<P: Into<PathBuf>>(path: P, sizes: IconSizes) -> Re...
  function scan_path (line 938) | pub fn scan_path(tab_path: &PathBuf, sizes: IconSizes) -> Vec<Item> {
  function scan_search (line 1052) | pub fn scan_search<F: Fn(SearchItem) -> bool + Sync>(
  function uri_to_path (line 1169) | fn uri_to_path(uri: String) -> Option<PathBuf> {
  function has_recents (line 1180) | pub fn has_recents() -> bool {
  function scan_recents (line 1187) | pub fn scan_recents(sizes: IconSizes) -> Vec<Item> {
  function scan_network (line 1233) | pub fn scan_network(uri: &str, sizes: IconSizes) -> Vec<Item> {
  function scan_desktop (line 1247) | pub fn scan_desktop(
  type EditLocation (line 1342) | pub struct EditLocation {
    method resolve (line 1349) | pub fn resolve(&self) -> Option<Location> {
    method select (line 1365) | pub fn select(&mut self, forwards: bool) {
    method from (line 1420) | fn from(location: Location) -> Self {
  type SearchLocation (line 1397) | pub enum SearchLocation {
    method fmt (line 1404) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  type SearchItem (line 1414) | pub enum SearchItem {
  type Location (line 1430) | pub enum Location {
    method fmt (line 1440) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
    method normalize (line 1457) | pub fn normalize(&self) -> Self {
    method ancestors (line 1481) | pub fn ancestors(&self) -> Vec<(Self, String)> {
    method path_opt (line 1495) | pub const fn path_opt(&self) -> Option<&PathBuf> {
    method into_path_opt (line 1505) | pub(crate) fn into_path_opt(self) -> Option<PathBuf> {
    method with_path (line 1515) | pub fn with_path(&self, path: PathBuf) -> Self {
    method with_uri (line 1533) | pub fn with_uri(&self, uri: String) -> Self {
    method scan (line 1541) | pub fn scan(&self, sizes: IconSizes) -> (Option<Box<Item>>, Vec<Item>) {
    method title (line 1569) | pub fn title(&self) -> String {
    method expand_tilde (line 1601) | pub fn expand_tilde(path: PathBuf) -> PathBuf {
    method is_trash (line 1615) | pub fn is_trash(&self) -> bool {
    method is_recents (line 1622) | pub fn is_recents(&self) -> bool {
    method supports_paste (line 1630) | pub fn supports_paste(&self) -> bool {
  type TaskWrapper (line 1642) | pub struct TaskWrapper(pub cosmic::Task<Message>);
    method from (line 1645) | fn from(task: cosmic::Task<Message>) -> Self {
    method fmt (line 1651) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  type Command (line 1657) | pub enum Command {
  type Message (line 1685) | pub enum Message {
  type LocationMenuAction (line 1756) | pub enum LocationMenuAction {
  type Message (line 1764) | type Message = Message;
  method message (line 1766) | fn message(&self) -> Self::Message {
  type DirSize (line 1772) | pub enum DirSize {
  type ItemMetadata (line 1780) | pub enum ItemMetadata {
    method is_dir (line 1804) | pub fn is_dir(&self) -> bool {
    method modified (line 1818) | pub fn modified(&self) -> Option<SystemTime> {
    method file_size (line 1829) | pub fn file_size(&self) -> Option<u64> {
    method children_count (line 1842) | pub fn children_count(&self) -> Option<&usize> {
  type ItemThumbnail (line 1853) | pub enum ItemThumbnail {
    method new (line 1875) | pub fn new(
    method generate_thumbnail_external (line 2097) | fn generate_thumbnail_external(
  method clone (line 1861) | fn clone(&self) -> Self {
  type Item (line 2189) | pub struct Item {
    method display_name (line 2213) | fn display_name(name: &str) -> String {
    method grid_display_name (line 2219) | fn grid_display_name<'a>(
    method list_display_name (line 2230) | fn list_display_name<'a>(
    method path_opt (line 2240) | pub fn path_opt(&self) -> Option<&PathBuf> {
    method can_gallery (line 2244) | pub fn can_gallery(&self) -> bool {
    method file_metadata (line 2248) | pub fn file_metadata(&self) -> Option<Metadata> {
    method preview (line 2260) | fn preview(&self) -> Element<'_, Message> {
    method preview_actions (line 2290) | pub fn preview_actions(&self) -> Element<'_, Message> {
    method preview_view (line 2313) | pub fn preview_view<'a>(
    method replace_view (line 2499) | pub fn replace_view(&self, heading: String, military_time: bool) -> El...
  type View (line 2544) | pub enum View {
  type HeadingOptions (line 2549) | pub enum HeadingOptions {
    method fmt (line 2557) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
    method names (line 2568) | pub fn names() -> Vec<String> {
  type Mode (line 2579) | pub enum Mode {
    method multiple (line 2587) | pub fn multiple(&self) -> bool {
  type SearchContext (line 2595) | struct SearchContext {
  type SearchContextWrapper (line 2601) | pub struct SearchContextWrapper(Option<SearchContext>);
    method fmt (line 2610) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  method clone (line 2604) | fn clone(&self) -> Self {
  type Tab (line 2617) | pub struct Tab {
    method new (line 2721) | pub fn new(
    method title (line 2779) | pub fn title(&self) -> String {
    method items_opt (line 2784) | pub const fn items_opt(&self) -> Option<&Vec<Item>> {
    method items_opt_mut (line 2788) | pub const fn items_opt_mut(&mut self) -> Option<&mut Vec<Item>> {
    method set_items (line 2792) | pub fn set_items(&mut self, mut items: Vec<Item>) {
    method cut_selected (line 2816) | pub fn cut_selected(&mut self) {
    method refresh_cut (line 2824) | pub fn refresh_cut(&mut self, locations: &[PathBuf]) {
    method selected_locations (line 2837) | pub fn selected_locations(&self) -> Vec<Location> {
    method select_all (line 2854) | pub fn select_all(&mut self) {
    method select_none (line 2866) | pub fn select_none(&mut self) -> bool {
    method select_name (line 2880) | pub fn select_name(&mut self, name: &str) {
    method select_by_prefix (line 2894) | pub fn select_by_prefix(&mut self, prefix: &str) -> bool {
    method index_before_focus (line 2951) | fn index_before_focus(current_focus: Option<usize>, forward: bool) -> ...
    method index_after_focus (line 2955) | fn index_after_focus(current_focus: Option<usize>, forward: bool) -> u...
    method select_first_prefix_from_index (line 2959) | fn select_first_prefix_from_index(
    method select_first_prefix_match (line 2989) | fn select_first_prefix_match<'a>(
    method select_paths (line 3002) | pub fn select_paths(&mut self, paths: Vec<PathBuf>) {
    method select_position (line 3017) | fn select_position(&mut self, row: usize, col: usize, mod_shift: bool)...
    method select_rect (line 3067) | pub fn select_rect(&mut self, rect: Rectangle, mod_ctrl: bool, mod_shi...
    method select_focus_id (line 3086) | pub fn select_focus_id(&self) -> Option<widget::Id> {
    method select_focus_pos_opt (line 3092) | fn select_focus_pos_opt(&self) -> Option<(usize, usize)> {
    method select_focus_scroll (line 3098) | pub(crate) fn select_focus_scroll(&mut self) -> Option<AbsoluteOffset> {
    method select_range_start_pos_opt (line 3133) | fn select_range_start_pos_opt(&self) -> Option<(usize, usize)> {
    method select_first_pos_opt (line 3139) | fn select_first_pos_opt(&self) -> Option<(usize, usize)> {
    method select_last_pos_opt (line 3164) | fn select_last_pos_opt(&self) -> Option<(usize, usize)> {
    method trigger_async_decode (line 3189) | fn trigger_async_decode(&mut self) -> Vec<Command> {
    method change_location (line 3260) | pub fn change_location(&mut self, location: &Location, history_i_opt: ...
    method update (line 3303) | pub fn update(&mut self, message: Message, modifiers: Modifiers) -> Ve...
    method sort_options (line 4575) | pub(crate) const fn sort_options(&self) -> (HeadingOptions, bool, bool) {
    method column_sort (line 4586) | fn column_sort(&self) -> Option<Vec<(usize, &Item)>> {
    method dnd_dest (line 4690) | fn dnd_dest<'a>(
    method gallery_view (line 4738) | pub fn gallery_view(&self) -> Element<'_, Message> {
    method location_view (line 4904) | pub fn location_view(&self) -> Element<'_, Message> {
    method empty_view (line 5276) | pub fn empty_view(&self, has_hidden: bool) -> Element<'_, Message> {
    method grid_view (line 5306) | pub fn grid_view(
    method list_view (line 5654) | pub fn list_view(
    method view_responsive (line 6049) | pub fn view_responsive<'a>(
    method multi_preview_view (line 6253) | pub fn multi_preview_view<'a>(
    method view (line 6510) | pub fn view<'a>(
    method subscription (line 6536) | pub fn subscription(&self, preview: bool) -> Subscription<Message> {
    method format_time (line 6948) | const fn format_time(&self, time: SystemTime) -> FormatTime<'_> {
  function calculate_dir_size (line 2657) | async fn calculate_dir_size(path: &Path, controller: Controller) -> Resu...
  function folder_name (line 2679) | fn folder_name<P: AsRef<Path>>(path: P) -> (String, bool) {
  function parse_hidden_file (line 2705) | pub fn parse_hidden_file(path: &PathBuf) -> Box<[String]> {
  function respond_to_scroll_direction (line 6953) | pub fn respond_to_scroll_direction(delta: ScrollDelta, modifiers: &Modif...
  function text_editor_class (line 6974) | fn text_editor_class(
  function tab_selects_item (line 7041) | fn tab_selects_item(
  function tab_history (line 7075) | fn tab_history() -> io::Result<(TempDir, Tab, Vec<PathBuf>)> {
  function scan_path_succeeds_on_valid_path (line 7122) | fn scan_path_succeeds_on_valid_path() -> io::Result<()> {
  function scan_path_returns_empty_vec_for_invalid_path (line 7147) | fn scan_path_returns_empty_vec_for_invalid_path() -> io::Result<()> {
  function scan_path_empty_dir_returns_empty_vec (line 7164) | fn scan_path_empty_dir_returns_empty_vec() -> io::Result<()> {
  function tab_location_changes_location (line 7178) | fn tab_location_changes_location() -> io::Result<()> {
  function tab_click_single_selects_item (line 7218) | fn tab_click_single_selects_item() -> io::Result<()> {
  function tab_click_double_opens_folder (line 7224) | fn tab_click_double_opens_folder() -> io::Result<()> {
  function tab_click_ctrl_selects_multiple (line 7246) | fn tab_click_ctrl_selects_multiple() -> io::Result<()> {
  function tab_gonext_moves_forward_in_history (line 7252) | fn tab_gonext_moves_forward_in_history() -> io::Result<()> {
  function tab_goprev_moves_backward_in_history (line 7274) | fn tab_goprev_moves_backward_in_history() -> io::Result<()> {
  function tab_scroll_up_with_ctrl_modifier_zooms (line 7289) | fn tab_scroll_up_with_ctrl_modifier_zooms() -> io::Result<()> {
  function tab_scroll_up_without_ctrl_modifier_does_not_zoom (line 7298) | fn tab_scroll_up_without_ctrl_modifier_does_not_zoom() -> io::Result<()> {
  function tab_scroll_down_with_ctrl_modifier_zooms (line 7308) | fn tab_scroll_down_with_ctrl_modifier_zooms() -> io::Result<()> {
  function tab_scroll_down_without_ctrl_modifier_does_not_zoom (line 7317) | fn tab_scroll_down_without_ctrl_modifier_does_not_zoom() -> io::Result<(...
  function tab_empty_history_does_nothing_on_prev_next (line 7326) | fn tab_empty_history_does_nothing_on_prev_next() -> io::Result<()> {
  function tab_locationup_moves_up_hierarchy (line 7351) | fn tab_locationup_moves_up_hierarchy() -> io::Result<()> {
  function sort_long_number_file_names (line 7377) | fn sort_long_number_file_names() -> io::Result<()> {
  function mode_calculations (line 7412) | fn mode_calculations() {

FILE: src/thumbnail_cacher.rs
  type ThumbnailCacher (line 17) | pub struct ThumbnailCacher {
    method new (line 27) | pub fn new(file_path: &Path, thumbnail_size: ThumbnailSize) -> Result<...
    method get_cached_thumbnail (line 62) | pub fn get_cached_thumbnail(&self) -> CachedThumbnail {
    method thumbnail_dir (line 90) | pub fn thumbnail_dir(&self) -> &Path {
    method update_with_temp_file (line 94) | pub fn update_with_temp_file(&self, temp_file: NamedTempFile) -> Resul...
    method update_with_image (line 103) | pub fn update_with_image(&self, image: DynamicImage) -> Result<&Path, ...
    method create_fail_marker (line 127) | pub fn create_fail_marker(&self) -> Result<(), Box<dyn Error>> {
    method update_thumbnail_text_metadata (line 143) | fn update_thumbnail_text_metadata(&self, path: &Path) -> Result<(), Bo...
    method is_thumbnail_valid (line 202) | fn is_thumbnail_valid(&self, thumbnail_path: &Path) -> bool {
  function thumbnail_uri (line 292) | fn thumbnail_uri(path: &Path) -> io::Result<String> {
  function thumbnail_cache_filename (line 308) | fn thumbnail_cache_filename(file_uri: &str) -> String {
  type ThumbnailSize (line 315) | pub enum ThumbnailSize {
    method from_pixel_size (line 323) | pub fn from_pixel_size(pixel_size: u32) -> Self {
    method pixel_size (line 335) | pub const fn pixel_size(self) -> u32 {
    method subdirectory_name (line 339) | pub const fn subdirectory_name(self) -> &'static str {
  type CachedThumbnail (line 349) | pub enum CachedThumbnail {

FILE: src/thumbnailer.rs
  type Thumbnailer (line 14) | pub struct Thumbnailer {
    method command (line 19) | pub fn command(
  type ThumbnailerCache (line 57) | pub struct ThumbnailerCache {
    method new (line 62) | pub fn new() -> Self {
    method reload (line 71) | pub fn reload(&mut self) {}
    method reload (line 74) | pub fn reload(&mut self) {
    method get (line 163) | pub fn get(&self, key: &Mime) -> Vec<Thumbnailer> {
  function thumbnailer (line 171) | pub fn thumbnailer(mime: &Mime) -> Vec<Thumbnailer> {

FILE: src/trash.rs
  type TrashExt (line 9) | pub trait TrashExt {
    method is_empty (line 10) | fn is_empty() -> bool {
    method entries (line 14) | fn entries() -> usize {
    method folders (line 18) | fn folders() -> Result<HashSet<PathBuf>, trash::Error> {
    method scan (line 24) | fn scan(_sizes: IconSizes) -> Vec<Item> {
    method scan_search (line 29) | fn scan_search<F: Fn(SearchItem) -> bool + Sync>(_callback: F, _regex:...
    method icon (line 31) | fn icon(icon_size: u16) -> widget::icon::Handle {
    method icon_symbolic (line 41) | fn icon_symbolic(icon_size: u16) -> widget::icon::Handle {
    method is_empty (line 65) | fn is_empty() -> bool {
    method entries (line 69) | fn entries() -> usize {
    method folders (line 78) | fn folders() -> Result<HashSet<PathBuf>, trash::Error> {
    method scan (line 82) | fn scan(sizes: IconSizes) -> Vec<Item> {
    method scan_search (line 113) | fn scan_search<F: Fn(SearchItem) -> bool + Sync>(callback: F, regex: &...
  type Trash (line 52) | pub struct Trash;

FILE: src/zoom.rs
  constant ZOOM_STEP (line 9) | const ZOOM_STEP: u16 = 25;
  function zoom_to_default (line 11) | pub(crate) const fn zoom_to_default(view: View, icon_sizes: &mut IconSiz...
  function zoom_in_view (line 16) | pub(crate) fn zoom_in_view(view: View, icon_sizes: &mut IconSizes) {
  function zoom_out_view (line 32) | pub(crate) fn zoom_out_view(view: View, icon_sizes: &mut IconSizes) {
  function select_resized_icon (line 48) | const fn select_resized_icon(view: View, icon_sizes: &mut IconSizes) -> ...
Condensed preview — 152 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,621K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 607,
    "preview": "<!--\nPlease include in the title whether this is a bug report or a feature request.\n\nAlso, please search existing issues"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 822,
    "preview": "- [ ] I have disclosed use of any AI generated code in my commit messages.\n  - If you are using an LLM, and do not fully"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 531,
    "preview": "name: Cargo Build & Test\n\non:\n  push:\n    branches:\n    - master\n  pull_request:\n\nenv:\n  CARGO_TERM_COLOR: always\n\njobs:"
  },
  {
    "path": ".github/workflows/validate-desktop-files.yml",
    "chars": 820,
    "preview": "name: Validate .desktop files\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n\njobs:\n  validate:\n    runs-on: "
  },
  {
    "path": ".gitignore",
    "chars": 170,
    "preview": "/.cargo/\n/debian/*debhelper*\n/debian/cosmic-files.substvars\n/debian/cosmic-files/\n/debian/files\n/flamegraph.svg\n/heaptra"
  },
  {
    "path": ".zed/settings.json",
    "chars": 249,
    "preview": "{\n  \"format_on_save\": \"on\",\n  \"lsp\": {\n    \"rust-analyzer\": {\n      \"initialization_options\": {\n        \"check\": {\n     "
  },
  {
    "path": "Cargo.toml",
    "chars": 4347,
    "preview": "[package]\nname = \"cosmic-files\"\nversion = \"1.0.12\"\nauthors = [\"Jeremy Soller <jeremy@system76.com>\"]\nedition = \"2024\"\nli"
  },
  {
    "path": "LICENSE",
    "chars": 35149,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "README.md",
    "chars": 911,
    "preview": "# cosmic-files\nFile manager for the COSMIC desktop environment\n\n## Build the project from source\n\n```sh\n# Clone the proj"
  },
  {
    "path": "TESTING.md",
    "chars": 2195,
    "preview": "# Testing\n\nThis document provides a regression testing checklist for COSMIC Files. The checklist provides a starting poi"
  },
  {
    "path": "build.rs",
    "chars": 806,
    "preview": "use std::path::PathBuf;\nuse std::{env, fs};\nuse xdgen::{App, Context, FluentString};\n\nfn main() {\n    let id = \"com.syst"
  },
  {
    "path": "cosmic-files-applet/Cargo.toml",
    "chars": 278,
    "preview": "[package]\nname = \"cosmic-files-applet\"\nversion = \"1.0.12\"\nedition = \"2024\"\n\n[dependencies]\nlog = \"0.4\"\nzbus = \"4\" # Bloc"
  },
  {
    "path": "cosmic-files-applet/src/file_manager.rs",
    "chars": 1795,
    "preview": "// SPDX-License-Identifier: GPL-3.0-only\n// Implementation of https://www.freedesktop.org/wiki/Specifications/file-manag"
  },
  {
    "path": "cosmic-files-applet/src/main.rs",
    "chars": 373,
    "preview": "mod file_manager;\n\nfn main() -> Result<(), Box<dyn std::error::Error>> {\n    //TODO: move file manager service to its ow"
  },
  {
    "path": "debian/changelog",
    "chars": 1482,
    "preview": "cosmic-files (1.0.12) noble; urgency=medium\n\n  * Epoch 1.0.12 version update\n\n -- Jeremy Soller <jeremy@system76.com>  T"
  },
  {
    "path": "debian/control",
    "chars": 478,
    "preview": "Source: cosmic-files\nSection: admin\nPriority: optional\nMaintainer: Jeremy Soller <jeremy@system76.com>\nBuild-Depends:\n  "
  },
  {
    "path": "debian/copyright",
    "chars": 270,
    "preview": "Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/\nUpstream-Name: cosmic-files\nUpstream-Contact:"
  },
  {
    "path": "debian/rules",
    "chars": 288,
    "preview": "#!/usr/bin/make -f\n\nexport DESTDIR = debian/cosmic-files\nexport VENDOR ?= 1\n\n%:\n\tdh $@\n\noverride_dh_auto_clean:\n\tif ! is"
  },
  {
    "path": "debian/source/format",
    "chars": 13,
    "preview": "3.0 (native)\n"
  },
  {
    "path": "debian/source/options",
    "chars": 73,
    "preview": "tar-ignore=.github\ntar-ignore=.vscode\ntar-ignore=vendor\ntar-ignore=target"
  },
  {
    "path": "examples/copy.rs",
    "chars": 1626,
    "preview": "use cosmic_files::operation::recursive::{Context, Method};\nuse cosmic_files::operation::{Controller, ReplaceResult};\nuse"
  },
  {
    "path": "examples/desktop.rs",
    "chars": 158,
    "preview": "// This launches the desktop mode as a regular window for easier testing.\nfn main() -> Result<(), Box<dyn std::error::Er"
  },
  {
    "path": "examples/dialog.rs",
    "chars": 8134,
    "preview": "use cosmic::app::{self, Core, Settings, Task};\nuse cosmic::iced::{Subscription, window};\nuse cosmic::{Application, Eleme"
  },
  {
    "path": "examples/gio-list.rs",
    "chars": 938,
    "preview": "use gio::prelude::*;\nuse std::env;\n\nfn main() {\n    let uri = env::args().nth(1).expect(\"no uri provided\");\n    let file"
  },
  {
    "path": "examples/gio-mount.rs",
    "chars": 801,
    "preview": "use gio::prelude::*;\nuse std::env;\n\nfn main() {\n    let uri = env::args().nth(1).expect(\"no uri provided\");\n    let cont"
  },
  {
    "path": "examples/gvfs.rs",
    "chars": 1359,
    "preview": "use gio::prelude::*;\n\nfn main() {\n    let monitor = gio::VolumeMonitor::get();\n    for drive in monitor.connected_drives"
  },
  {
    "path": "i18n/af/cosmic_files.ftl",
    "chars": 950,
    "preview": "support = Ondersteuning\ncancel = Kanselleer\nsettings = Instellings\ntheme = Tema\nlight = Lig\ndark = Donker\ncosmic-files ="
  },
  {
    "path": "i18n/ar/cosmic_files.ftl",
    "chars": 9821,
    "preview": "cosmic-files = ملفات COSMIC\ncomment = مدير ملفات لسطح مكتب COSMIC\nkeywords = مجلد;ملف;مدير;\nempty-folder = مجلد فارغ\nemp"
  },
  {
    "path": "i18n/be/cosmic_files.ftl",
    "chars": 11093,
    "preview": "cosmic-files = Файлы COSMIC\nempty-folder = Пустая папка\nempty-folder-hidden = Пустая папка (са схаванымі элементамі)\nno-"
  },
  {
    "path": "i18n/bg/cosmic_files.ftl",
    "chars": 11263,
    "preview": "cosmic-files = Файлове на COSMIC\nempty-folder = Празна папка\nempty-folder-hidden = Празна папка (съдържа скрити елементи"
  },
  {
    "path": "i18n/bn/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/ca/cosmic_files.ftl",
    "chars": 9193,
    "preview": "cosmic-files = Fitxers del COSMIC\nempty-folder = Carpeta buida\nempty-folder-hidden = Carpeta buida (té elements ocults)\n"
  },
  {
    "path": "i18n/cs/cosmic_files.ftl",
    "chars": 11611,
    "preview": "cosmic-files = Soubory COSMIC\ncomment = Správce souborů pro prostředí COSMIC\nkeywords = Složka;Složky;Správce;Manažer;Pr"
  },
  {
    "path": "i18n/da/cosmic_files.ftl",
    "chars": 7894,
    "preview": "cosmic-files = COSMIC Filer\nempty-folder = Tom mappe\nempty-folder-hidden = Tom mappe (har skjulte filer)\nno-results = In"
  },
  {
    "path": "i18n/de/cosmic_files.ftl",
    "chars": 12218,
    "preview": "cosmic-files = COSMIC Dateien\nempty-folder = Leerer Ordner\nempty-folder-hidden = Leerer Ordner (hat versteckte Elemente)"
  },
  {
    "path": "i18n/el/cosmic_files.ftl",
    "chars": 443,
    "preview": "empty-folder = Άδειος φάκελος\nno-results = Δεν βρέθηκαν αποτελέσματα\ntrash = Κάδος Ανακύκλωσης\nrecents = Πρόσφατα\ncosmic"
  },
  {
    "path": "i18n/en/cosmic_files.ftl",
    "chars": 10635,
    "preview": "cosmic-files = COSMIC Files\ncomment = File manager for the COSMIC desktop\nkeywords = Folder;Manager;\nempty-folder = Empt"
  },
  {
    "path": "i18n/en-GB/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/eo/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/es/cosmic_files.ftl",
    "chars": 11579,
    "preview": "cosmic-files = Archivos COSMIC\ncomment = Gestor de archivos de COSMIC\nkeywords = Archivos;Ficheros;Gestor;Explorador;\nem"
  },
  {
    "path": "i18n/es-419/cosmic_files.ftl",
    "chars": 11272,
    "preview": "cosmic-files = Archivos de COSMIC\nempty-folder = Carpeta vacía\nempty-folder-hidden = Carpeta vacía (tiene elementos ocul"
  },
  {
    "path": "i18n/es-MX/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/et/cosmic_files.ftl",
    "chars": 7322,
    "preview": "empty-folder = Tühi kaust\nempty-folder-hidden = Tühi kaust (leidub peidetud kirjeid)\nno-results = Tulemusi ei leidu\nfile"
  },
  {
    "path": "i18n/eu/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/fa/cosmic_files.ftl",
    "chars": 9156,
    "preview": "cosmic-files = فایل‌های COSMIC\nempty-folder = پوشه خالی\nempty-folder-hidden = پوشه خالی (شامل موارد مخفی)\nno-results = ن"
  },
  {
    "path": "i18n/fi/cosmic_files.ftl",
    "chars": 11278,
    "preview": "cosmic-files = COSMICin tiedostot\nempty-folder = Tyhjä kansio\nempty-folder-hidden = Tyhjä kansio (sisältää piilotettuja "
  },
  {
    "path": "i18n/fr/cosmic_files.ftl",
    "chars": 12013,
    "preview": "cosmic-files = Fichiers COSMIC\nempty-folder = Dossier vide\nempty-folder-hidden = Dossier vide (contient des éléments cac"
  },
  {
    "path": "i18n/fy/cosmic_files.ftl",
    "chars": 315,
    "preview": "support = Stipe\nrepository = Argyf\nopen-file = Iepenje in bestân\ncancel = Annulearje\nopen-folder = Iepenje in map\nsettin"
  },
  {
    "path": "i18n/ga/cosmic_files.ftl",
    "chars": 11729,
    "preview": "cosmic-files = Comhaid COSMIC\nempty-folder = Fillteán folamh\nempty-folder-hidden = Fillteán folamh (tá míreanna folaithe"
  },
  {
    "path": "i18n/gd/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/gu/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/he/cosmic_files.ftl",
    "chars": 43,
    "preview": "connect = התחברות\nprogress = { $percent }%\n"
  },
  {
    "path": "i18n/hi/cosmic_files.ftl",
    "chars": 7311,
    "preview": "cosmic-files = कॉस्मिक फाइल्स\nempty-folder = खाली फ़ोल्डर\nempty-folder-hidden = खाली फ़ोल्डर (अदृश्य आइटम शामिल हैं)\nno-"
  },
  {
    "path": "i18n/hr/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/hu/cosmic_files.ftl",
    "chars": 11259,
    "preview": "cosmic-files = COSMIC Fájlok\ncomment = Fájlkezelő a COSMIC asztali környezethez\nkeywords = mappa;fájl;kezelő;\nempty-fold"
  },
  {
    "path": "i18n/id/cosmic_files.ftl",
    "chars": 10381,
    "preview": "empty-folder = Map kosong\nempty-folder-hidden = Map kosong (memiliki item tersembunyi)\nno-results = Tidak ada hasil yang"
  },
  {
    "path": "i18n/ie/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/is/cosmic_files.ftl",
    "chars": 9493,
    "preview": "cancel = Hætta við\nsupport = Stuðningur\ndelete = Eyða\nname = Heiti\nsettings = Stillingar\nappearance = Útlit\ntheme = Þema"
  },
  {
    "path": "i18n/it/cosmic_files.ftl",
    "chars": 11201,
    "preview": "cosmic-files = COSMIC Files\ncomment = File manager di COSMIC\nkeywords = File;Archivi;Cartelle;Explorer;\nempty-folder = C"
  },
  {
    "path": "i18n/ja/cosmic_files.ftl",
    "chars": 8186,
    "preview": "cosmic-files = COSMICファイル\nempty-folder = 空のフォルダ\nempty-folder-hidden = 空のフォルダ(隠しファイルあり)\nno-results = 検索結果はありません\nfilesyste"
  },
  {
    "path": "i18n/jv/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/ka/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/kab/cosmic_files.ftl",
    "chars": 10477,
    "preview": "change-wallpaper = Beddel aɣrab n ugdil…\ncosmic-files = Ifuyla COSMIC\nempty-folder = Akaram d ilem\nempty-folder-hidden ="
  },
  {
    "path": "i18n/kk/cosmic_files.ftl",
    "chars": 10692,
    "preview": "cosmic-files = COSMIC файлдары\nempty-folder = Бос бума\nempty-folder-hidden = Бос бума (жасырын элементтері бар)\nno-resul"
  },
  {
    "path": "i18n/kmr/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/kn/cosmic_files.ftl",
    "chars": 7475,
    "preview": "cosmic-files = ಕಾಸ್ಮಿಕ್ ಫೈಲ್ಸ್\nempty-folder = ಖಾಲಿ ಫೋಲ್ಡರ್\nempty-folder-hidden = ಖಾಲಿ ಫೋಲ್ಡರ್ (ಗೋಚರವಾಗದ ಐಟಂಗಳನ್ನು ಹೊಂದಿದ"
  },
  {
    "path": "i18n/ko/cosmic_files.ftl",
    "chars": 7209,
    "preview": "cosmic-files = COSMIC 파일\nempty-folder = 빈 폴더\nempty-folder-hidden = 빈 폴더 (숨겨진 항목 있음)\nfilesystem = 파일 시스템\nhome = 홈\ntrash ="
  },
  {
    "path": "i18n/li/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/lt/cosmic_files.ftl",
    "chars": 11126,
    "preview": "progress = { $percent }%\ncosmic-files = Cosmic Files\nempty-folder = Tuščias aplankas\nempty-folder-hidden = Tuščias aplan"
  },
  {
    "path": "i18n/ml/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/ms/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/nb-NO/cosmic_files.ftl",
    "chars": 9544,
    "preview": "open-file = Åpne fil\nopen-folder = Åpne mappe\nsettings = Innstillinger\nappearance = Utseende\ntheme = Tema\ndark = Mørk\nli"
  },
  {
    "path": "i18n/nl/cosmic_files.ftl",
    "chars": 11533,
    "preview": "cosmic-files = COSMIC Bestanden\nempty-folder = Lege map\nempty-folder-hidden = Lege map (met verborgen items)\nno-results "
  },
  {
    "path": "i18n/nn/cosmic_files.ftl",
    "chars": 191,
    "preview": "cosmic-files = COSMIC Filer\nopen-file = Opna fil\nempty-folder = Tom mappe\ncancel = Avbryt\npassword = Passord\nsettings = "
  },
  {
    "path": "i18n/oc/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/pa/cosmic_files.ftl",
    "chars": 6643,
    "preview": "empty-folder = ਖਾਲੀ ਫੋਲਡਰ\nempty-folder-hidden = ਖਾਲੀ ਫੋਲਡਰ (ਲੁਕਵੀਆਂ ਚੀਜ਼ਾਂ ਹਨ)\nno-results = ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ ਲੱਭਿਆ\nfilesyst"
  },
  {
    "path": "i18n/pl/cosmic_files.ftl",
    "chars": 11395,
    "preview": "cosmic-files = Pliki COSMIC\ncomment = Menedżer plików pulpitu COSMIC\nkeywords = Katalogi;Pliki;Menedżer;\nempty-folder = "
  },
  {
    "path": "i18n/pt/cosmic_files.ftl",
    "chars": 10493,
    "preview": "cosmic-files = Ficheiros COSMIC\ncomment = Gerenciador de arquivos do COSMIC\nkeywords = Pastas;Gerenciador;Arquivos;Gesto"
  },
  {
    "path": "i18n/pt-BR/cosmic_files.ftl",
    "chars": 11497,
    "preview": "cosmic-files = Gestor de Arquivos\ncomment = Gerenciador de arquivos do ambiente COSMIC\nempty-folder = Pasta vazia\nempty-"
  },
  {
    "path": "i18n/ro/cosmic_files.ftl",
    "chars": 9549,
    "preview": "cosmic-files = Fișiere COSMIC\nempty-folder = Dosar gol\nempty-folder-hidden = Dosar gol (conține elemente ascunse)\nno-res"
  },
  {
    "path": "i18n/ru/cosmic_files.ftl",
    "chars": 10835,
    "preview": "cosmic-files = Файлы\nempty-folder = Папка пуста\nempty-folder-hidden = Папка пуста (есть скрытые элементы)\nno-results = Н"
  },
  {
    "path": "i18n/sk/cosmic_files.ftl",
    "chars": 11665,
    "preview": "cosmic-files = Súbory COSMIC\ncomment = Správca súborov pre prostredie COSMIC\nkeywords = Priečinok;Správca;Súbory;Manažér"
  },
  {
    "path": "i18n/sl/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/sr/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/sr-Cyrl/cosmic_files.ftl",
    "chars": 1474,
    "preview": "empty-folder = Празна фасцикла\nempty-folder-hidden = Празна фасцикла (има скривене ставке)\nfilesystem = Систем датотека\n"
  },
  {
    "path": "i18n/sr-Latn/cosmic_files.ftl",
    "chars": 904,
    "preview": "empty-folder = Prazna fascikla\nempty-folder-hidden = Prazna fascikla (ima skrivene stavke)\nfilesystem = Sistem datoteka\n"
  },
  {
    "path": "i18n/sv/cosmic_files.ftl",
    "chars": 10993,
    "preview": "cosmic-files = COSMIC Filer\ncomment = Filhanterare för skrivbordsmiljön COSMIC\nkeywords = Folder;Katalog;Mapp;Manager;\ne"
  },
  {
    "path": "i18n/ta/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/th/cosmic_files.ftl",
    "chars": 7689,
    "preview": "cosmic-files = ตัวจัดการไฟล์ COSMIC\nempty-folder = แฟ้มเปล่า\nempty-folder-hidden = แฟ้มเปล่า (มีแฟ้มที่ซ่อนอยู่)\nno-resu"
  },
  {
    "path": "i18n/ti/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/tr/cosmic_files.ftl",
    "chars": 10884,
    "preview": "cosmic-files = COSMIC Dosyalar\nempty-folder = Boş klasör\nempty-folder-hidden = Boş klasör (gizli ögeler içerir)\nno-resul"
  },
  {
    "path": "i18n/uk/cosmic_files.ftl",
    "chars": 10807,
    "preview": "cosmic-files = Файли COSMIC\nempty-folder = Порожня тека\nempty-folder-hidden = Порожня тека (містить приховані елементи)\n"
  },
  {
    "path": "i18n/uz/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/vi/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/yue-Hant/cosmic_files.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "i18n/zh-CN/cosmic_files.ftl",
    "chars": 8200,
    "preview": "cosmic-files = COSMIC 文件管理器\nempty-folder = 空文件夹\nempty-folder-hidden = 空文件夹(包含隐藏项目)\nno-results = 未找到结果\nfilesystem = 文件系统\n"
  },
  {
    "path": "i18n/zh-TW/cosmic_files.ftl",
    "chars": 7807,
    "preview": "cosmic-files = COSMIC 檔案\nempty-folder = 空資料夾\nempty-folder-hidden = 空資料夾(包含隱藏項目)\nno-results = 找不到結果\nfilesystem = 檔案系統\nhom"
  },
  {
    "path": "i18n.toml",
    "chars": 54,
    "preview": "fallback_language = \"en\"\n\n[fluent]\nassets_dir = \"i18n\""
  },
  {
    "path": "justfile",
    "chars": 3877,
    "preview": "name := 'cosmic-files'\nexport APPID := 'com.system76.CosmicFiles'\n\nrootdir := ''\nprefix := '/usr'\n\nbase-dir := absolute_"
  },
  {
    "path": "res/com.system76.CosmicFiles.desktop",
    "chars": 270,
    "preview": "[Desktop Entry]\nName=COSMIC Files\nComment=File manager for the COSMIC desktop\nExec=cosmic-files %U\nTerminal=false\nType=A"
  },
  {
    "path": "res/com.system76.CosmicFiles.metainfo.xml",
    "chars": 1810,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component type=\"desktop-application\">\n  <id>com.system76.CosmicFiles</id>\n  <met"
  },
  {
    "path": "rust-toolchain.toml",
    "chars": 66,
    "preview": "[toolchain]\nchannel = \"1.93.0\"\ncomponents = [\"clippy\", \"rustfmt\"]\n"
  },
  {
    "path": "rustfmt.toml",
    "chars": 31,
    "preview": "imports_granularity = \"Module\"\n"
  },
  {
    "path": "samples/i18n/منزل",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "samples/i18n/主目錄",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "samples/mime/application/javascript.js",
    "chars": 58,
    "preview": "console.log(\"This is an example JavaScript source file\");\n"
  },
  {
    "path": "samples/mime/application/x-shellscript.sh",
    "chars": 48,
    "preview": "#!/bin/sh\n\necho \"This is an example shell file\"\n"
  },
  {
    "path": "samples/mime/application/x-yaml.yaml",
    "chars": 11,
    "preview": "key: value\n"
  },
  {
    "path": "samples/mime/check.sh",
    "chars": 591,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\ncd \"$(dirname \"$0\")\"\n\nfor file in */*\ndo\n    filetype=\"$(xdg-mime query filetype \"${file}\")"
  },
  {
    "path": "samples/mime/text/css.css",
    "chars": 41,
    "preview": "example-css-file {\n    color: #000000;\n}\n"
  },
  {
    "path": "samples/mime/text/csv.csv",
    "chars": 17,
    "preview": "Example,CSV,file\n"
  },
  {
    "path": "samples/mime/text/html.html",
    "chars": 37,
    "preview": "<body>\n    Example HTML file\n</body>\n"
  },
  {
    "path": "samples/mime/text/markdown.md",
    "chars": 45,
    "preview": "# Markdown\n\nThis is an example markdown file\n"
  },
  {
    "path": "samples/mime/text/plain.txt",
    "chars": 27,
    "preview": "This is a plain text file.\n"
  },
  {
    "path": "samples/mime/text/rust.rs",
    "chars": 67,
    "preview": "fn main() {\n    println!(\"This is an example Rust source file\");\n}\n"
  },
  {
    "path": "samples/mime/text/x-chdr.h",
    "chars": 36,
    "preview": "// This is an example C header file\n"
  },
  {
    "path": "samples/mime/text/x-csrc.c",
    "chars": 106,
    "preview": "#include <stdio.h>\n\nint main(int argc, char **argv) {\n    printf(\"This is an example C source file\\n\");\n}\n"
  },
  {
    "path": "samples/mode/.gitignore",
    "chars": 4,
    "preview": "/0*\n"
  },
  {
    "path": "samples/mode/create.sh",
    "chars": 278,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nrm -f 0*\nfor umode in 4 5 6 7\ndo\n    for gmode in 0 4 5 6 7\n    do\n        for amode in 0 "
  },
  {
    "path": "scripts/copy.sh",
    "chars": 414,
    "preview": "#!/usr/bin/env bash\n\nset -ex\ncargo fmt\ncargo build --release --example copy\nrm -rf test\nmkdir test\ncp -a samples test/a\n"
  },
  {
    "path": "src/app.rs",
    "chars": 310544,
    "preview": "// Copyright 2023 System76 <info@system76.com>\n// SPDX-License-Identifier: GPL-3.0-only\n\nuse cosmic::app::{self, Core, T"
  },
  {
    "path": "src/archive.rs",
    "chars": 11089,
    "preview": "use crate::mime_icon::mime_for_path;\nuse crate::operation::{Controller, OpReader, OperationError, OperationErrorType, sy"
  },
  {
    "path": "src/channel.rs",
    "chars": 2217,
    "preview": "// Copyright 2025 System76 <info@system76.com>\n// SPDX-License-Identifier: MPL-2.0\n\nuse std::collections::VecDeque;\nuse "
  },
  {
    "path": "src/clipboard.rs",
    "chars": 11190,
    "preview": "// Copyright 2024 System76 <info@system76.com>\n// SPDX-License-Identifier: GPL-3.0-only\n\nuse cosmic::iced::clipboard::mi"
  },
  {
    "path": "src/config.rs",
    "chars": 10931,
    "preview": "// SPDX-License-Identifier: GPL-3.0-only\n\nuse std::any::TypeId;\nuse std::num::NonZeroU16;\nuse std::path::PathBuf;\n\nuse c"
  },
  {
    "path": "src/context_action.rs",
    "chars": 2254,
    "preview": "// SPDX-License-Identifier: GPL-3.0-only\n\nuse std::path::PathBuf;\n\nuse serde::{Deserialize, Serialize};\n\nuse crate::mime"
  },
  {
    "path": "src/dialog.rs",
    "chars": 86372,
    "preview": "// Copyright 2023 System76 <info@system76.com>\n// SPDX-License-Identifier: GPL-3.0-only\n\nuse cosmic::app::cosmic::Cosmic"
  },
  {
    "path": "src/key_bind.rs",
    "chars": 3836,
    "preview": "use cosmic::iced::core::keyboard::key::Named;\nuse cosmic::iced::keyboard::Key;\nuse cosmic::widget::menu::key_bind::{KeyB"
  },
  {
    "path": "src/large_image.rs",
    "chars": 22455,
    "preview": "use cosmic::widget;\nuse image::ImageReader;\nuse std::collections::{HashMap, HashSet};\nuse std::path::{Path, PathBuf};\n\n/"
  },
  {
    "path": "src/lib.rs",
    "chars": 6354,
    "preview": "// Copyright 2023 System76 <info@system76.com>\n// SPDX-License-Identifier: GPL-3.0-only\n\nuse cosmic::app::Settings;\nuse "
  },
  {
    "path": "src/load_image.rs",
    "chars": 6554,
    "preview": "use cosmic::iced::{core as iced_core, widget as iced_widget};\nuse iced_core::event::Event;\nuse iced_core::widget::{Opera"
  },
  {
    "path": "src/localize.rs",
    "chars": 3419,
    "preview": "// SPDX-License-Identifier: GPL-3.0-only\n\nuse i18n_embed::fluent::{FluentLanguageLoader, fluent_language_loader};\nuse i1"
  },
  {
    "path": "src/main.rs",
    "chars": 298,
    "preview": "#[cfg(feature = \"jemalloc\")]\nuse tikv_jemallocator::Jemalloc;\n\n#[cfg(feature = \"jemalloc\")]\n#[global_allocator]\nstatic G"
  },
  {
    "path": "src/menu.rs",
    "chars": 34995,
    "preview": "// SPDX-License-Identifier: GPL-3.0-only\n\nuse cosmic::app::Core;\nuse cosmic::iced::advanced::widget::text::Style as Text"
  },
  {
    "path": "src/mime_app.rs",
    "chars": 23855,
    "preview": "// Copyright 2023 System76 <info@system76.com>\n// SPDX-License-Identifier: GPL-3.0-only\n\nuse bstr::{BString, ByteSlice, "
  },
  {
    "path": "src/mime_icon.rs",
    "chars": 4077,
    "preview": "// SPDX-License-Identifier: GPL-3.0-only\n\nuse cosmic::widget::icon;\nuse mime_guess::Mime;\nuse rustc_hash::FxHashMap;\nuse"
  },
  {
    "path": "src/mounter/gvfs.rs",
    "chars": 31785,
    "preview": "use cosmic::iced::futures::SinkExt;\nuse cosmic::iced::{Subscription, stream};\nuse cosmic::{Task, widget};\nuse gio::glib;"
  },
  {
    "path": "src/mounter/mod.rs",
    "chars": 3916,
    "preview": "use cosmic::iced::Subscription;\nuse cosmic::{Task, widget};\nuse std::collections::BTreeMap;\nuse std::fmt;\nuse std::path:"
  },
  {
    "path": "src/mouse_area.rs",
    "chars": 24552,
    "preview": "//! A container for capturing mouse events.\n\nuse std::time::Instant;\n\nuse crate::tab::DOUBLE_CLICK_DURATION;\nuse cosmic:"
  },
  {
    "path": "src/operation/controller.rs",
    "chars": 3808,
    "preview": "use atomic_float::AtomicF32;\nuse num_enum::{IntoPrimitive, TryFromPrimitive};\nuse std::sync::Arc;\nuse std::sync::atomic:"
  },
  {
    "path": "src/operation/mod.rs",
    "chars": 55622,
    "preview": "use crate::app::{ArchiveType, DialogPage, Message, REPLACE_BUTTON_ID};\nuse crate::config::IconSizes;\nuse crate::spawn_de"
  },
  {
    "path": "src/operation/notifiers.rs",
    "chars": 1560,
    "preview": "// Copyright 2026 System76 <info@system76.com>\n// SPDX-License-Identifier: GPL-3.0-only\n\nuse std::path::{Path, PathBuf};"
  },
  {
    "path": "src/operation/reader.rs",
    "chars": 1167,
    "preview": "use std::path::Path;\nuse std::{fs, io};\n\nuse crate::operation::OperationError;\n\nuse super::Controller;\n\n// Special reade"
  },
  {
    "path": "src/operation/recursive.rs",
    "chars": 26112,
    "preview": "// Copyright 2023 System76 <info@system76.com>\n// SPDX-License-Identifier: GPL-3.0-only\n\nuse super::{Controller, Operati"
  },
  {
    "path": "src/spawn_detached.rs",
    "chars": 1181,
    "preview": "use std::{io, process};\n\n// This code is from the open crate and retains its MIT license.\npub fn spawn_detached(command:"
  },
  {
    "path": "src/tab.rs",
    "chars": 293759,
    "preview": "#[cfg(feature = \"desktop\")]\nuse cosmic::desktop::fde::{DesktopEntry, get_languages_from_env};\nuse cosmic::iced::advanced"
  },
  {
    "path": "src/thumbnail_cacher.rs",
    "chars": 12528,
    "preview": "use image::DynamicImage;\nuse md5::{Digest, Md5};\nuse rustc_hash::FxHashMap;\nuse std::error::Error;\nuse std::fs::{self, F"
  },
  {
    "path": "src/thumbnailer.rs",
    "chars": 5580,
    "preview": "// Copyright 2023 System76 <info@system76.com>\n// SPDX-License-Identifier: GPL-3.0-only\n\n#[cfg(feature = \"desktop\")]\nuse"
  },
  {
    "path": "src/trash.rs",
    "chars": 4098,
    "preview": "use cosmic::widget;\nuse regex::Regex;\nuse std::collections::HashSet;\nuse std::path::PathBuf;\n\nuse crate::config::IconSiz"
  },
  {
    "path": "src/zoom.rs",
    "chars": 1489,
    "preview": "use std::num::NonZeroU16;\n\nuse crate::config::IconSizes;\nuse crate::tab::View;\n\nstatic DEFAULT_ZOOM: NonZeroU16 = NonZer"
  }
]

// ... and 2 more files (download for full content)

About this extraction

This page contains the full source code of the pop-os/cosmic-files GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 152 files (1.4 MB), approximately 338.3k tokens, and a symbol index with 808 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!