flameshot-org/flameshot

GitHub: flameshot-org/flameshot

一款跨平台的开源截图软件,提供截屏标注、CLI 自动化和 Imgur 上传等功能,适合安全评估、运维记录和日常截图需求。

Stars: 29756 | Forks: 1898

Flameshot
Flameshot

Powerful yet simple to use screenshot software.

GNU/Linux Build Status Windows Build Status MacOS Build Status Nightly Build Latest Stable Release Total Downloads License Translation status Docs
Get it from the Snap Store Get it on Flathub

## 预览 ![image](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2c2cf83d1b194141.gif) ## 目录 - [功能](#features) - [用法](#usage) - [CLI 配置](#cli-configuration) - [配置文件](#config-file) - [键盘快捷键](#keyboard-shortcuts) - [局部](#local) - [全局](#global) - [在 KDE Plasma 桌面上](#on-kde-plasma-desktop) - [在 Gnome 上 (Ubuntu、Fedora 等)](#on-gnome-ubuntu-fedora-and-more) - [在 XFCE 4 上](#on-xfce-4) - [在 Fluxbox 上](#on-fluxbox) - [注意事项](#considerations) - [安装](#installation) - [预编译包](#prebuilt-packages) - [软件源中的包](#packages-from-repository) - [macOS](#macos) - [Windows](#windows) - [编译](#compilation) - [依赖项](#dependencies) - [编译时](#compile-time) - [运行时](#run-time) - [可选](#optional) - [Debian](#debian) - [Fedora](#fedora) - [Arch](#arch) - [构建](#build) - [安装](#install) - [许可证](#license) - [隐私政策](#privacy-policy) - [代码签名政策](#code-signing-policy) - [贡献](#contribute) - [致谢](#acknowledgment) ## 功能 - 可自定义外观。 - 易于使用。 - 应用内截图编辑。 - DBus 接口。 - 上传到 Imgur。 ## 用法 执行不带参数的 `flameshot` 命令将在后台启动一个运行的程序实例,而不采取任何操作。 如果你的桌面环境提供托盘区域,托盘中也会出现一个托盘图标,供用户进行配置和管理。 示例命令: - 使用 GUI 截图: flameshot gui - 使用 GUI 截图并自定义保存路径: flameshot gui -p ~/myStuff/captures - 延迟 2 秒后使用 GUI 截图(可用于截取鼠标悬停工具提示等): flameshot gui -d 2000 - 延迟并自定义保存路径的全屏截图(无 GUI): flameshot full -p ~/myStuff/captures -d 5000 - 自定义保存路径并复制到剪贴板的全屏截图: flameshot full -c -p ~/myStuff/captures - 截取包含鼠标的屏幕并以 PNG 格式打印图像(字节): flameshot screen -r - 截取屏幕编号 1 并将其复制到剪贴板: flameshot screen -n 1 -c 如果有疑问,请在您喜欢的桌面环境中选择第一个或第二个命令作为快捷方式。 在 Flameshot 运行时,系统面板中会出现一个系统托盘图标。 右键单击托盘图标,您将看到一些菜单项,用于打开配置窗口和信息窗口。 查看“关于”窗口,了解图形截图模式下所有可用的快捷方式。 ### Windows 上的用法 在 Windows 上,`flameshot.exe` 将按预期支持所有命令行参数, 但它不会在控制台输出任何文本。例如,当您运行 `flameshot.exe -h` 时,这会是个问题。 如果您需要控制台输出,请改用运行 `flameshot-cli.exe`。`flameshot-cli.exe` 是一个 `flameshot.exe` 的最小包装器,可确保所有 stdout 被捕获并输出到控制台。 ### CLI 配置 您可以使用图形菜单来配置 Flameshot,但您也可以选择使用终端或脚本来完成。 - 打开配置菜单: flameshot config - 在截图模式下显示初始帮助信息: flameshot config --showhelp true - 有关可用选项的更多信息,请使用 help 标志: flameshot config -h ### 配置文件 您还可以在配置文件中编辑某些设置(例如覆盖默认颜色)。\ Linux 路径:`~/.config/flameshot/flameshot.ini`。\ Windows 路径:`C:\Users\{YOURNAME}\AppData\Roaming\flameshot\flameshot.ini`。 在将配置文件从 Linux 复制到 Windows 或反之亦然时, 请确保更正 `savePath` 变量,\ 以便屏幕截图保存在您所需文件系统的正确目录中。 ## 键盘快捷键 ### 局部 这些快捷键在 GUI 模式下可用: | 按键 | 描述 | |--- |--- | | P | 将铅笔设置为绘画工具 | | D | 将直线设置为绘画工具 | | A | 将箭头设置为绘画工具 | | S | 将选择设置为绘画工具 | | R | 将矩形设置为绘画工具 | | C | 将圆形设置为绘画工具 | | M | 将标记设置为绘画工具 | | T | 为截图添加文本 | | B | 将像素化设置为绘画工具 | | , , , | 移动选区 1px | | Shift + , , , | 调整选区大小 1px | | Ctrl + Shift + , , , | 对称调整选区大小 2px | | Esc | 退出截图 | | Ctrl + M | 移动选区 | | Ctrl + C | 复制到剪贴板 | | Ctrl + S | 将选区保存为文件 | | Ctrl + Z | 撤销上次修改 | | Ctrl + Shift + Z | 重做下次修改 | | Ctrl + Q | 离开截屏 | | Ctrl + O | 选择应用以打开截图 | | Ctrl + Return | 在文本区域提交文本| | Ctrl + Backspace | 取消当前选区 | | Return | 将选区上传到 Imgur | | Spacebar | 切换侧边栏的可见性(包含所选工具的选项、绘画颜色的颜色选择器以及历史菜单) | | G | 启动颜色选择器 | | 右键单击 | 显示色轮 | | 鼠标滚轮 | 更改工具的粗细 | | Print screen | 截取屏幕 | | Shift + Print | 截图历史 | | Ctrl + 绘制 *线条*、*箭头* 或 *标记* | 仅水平、垂直或对角线绘制 | | Ctrl + 绘制 *矩形* 或 *圆形* | 保持宽高比 | Shift + 拖动选区的某个控制点:在相对的控制点进行镜像缩放。 ### 全局 - Windows:Prt Sc(固定,无法更改)和 Win + Shift + X(可在设置中更改) - macOS:cmd + Shift + X(可在设置中更改) - Linux:Flameshot 尚未开箱即用地支持 Prt Sc,但您可以通过一些配置来设置: #### 在 KDE Plasma 桌面上 为了简化配置,仓库中有一个[文件](docs/shortcuts-config/flameshot-shortcuts-kde.kksrc),或多或少能自动化此过程。默认情况下,此文件将分配以下热键: | 按键 | 描述 | |--- |--- | | Prt Sc | 启动 Flameshot 截图工具并截取屏幕截图 | | Ctrl + Prt Sc | 等待 3 秒,然后启动 Flameshot 截图工具并截取屏幕截图 | | Shift + Prt Sc | 截取全屏(所有显示器)截图并保存 | | Ctrl + Shift + Prt Sc | 截取全屏(所有显示器)截图并将其复制到剪贴板 | 如果您不喜欢默认设置,可以稍后更改它们。 使用配置的步骤: 1. 配置文件会让 Flameshot 自动将屏幕截图保存到 `~/Pictures/Screenshots`,而不会打开保存对话框。请运行以下命令确保该文件夹存在: mkdir -p ~/Pictures/Screenshots (如果您不喜欢默认位置,可以跳过此步骤并在稍后配置您首选的目录。) 2. 下载配置文件: cd ~/Desktop wget https://raw.githubusercontent.com/flameshot-org/flameshot/master/docs/shortcuts-config/flameshot-shortcuts-kde.khotkeys 3. 确保您已使用包管理器安装了 `khotkeys`,以便在 KDE Plasma 中启用自定义快捷方式。 4. 转到 _系统设置_ → _快捷键_ → _自定义快捷键_。 5. 如果存在 Spectacle(默认的 KDE 截图工具)条目,则需要将其禁用,因为它的快捷方式可能会与 Flameshot 的冲突。通过取消勾选 _Spectacle_ 条目来实现。 6. 点击 _编辑_ → _导入..._,导航到配置文件并将其打开。 7. 现在 Flameshot 条目应该会出现在列表中。点击 _应用_ 以应用更改。 8. 如果要更改默认热键,可以展开条目,选择相应的操作并根据需要进行修改;该过程不言自明。 9. 如果您将 Flameshot 作为 Flatpak 安装,则需要创建一个指向该命令的符号链接: ln -s /var/lib/flatpak/exports/bin/org.flameshot.Flameshot ~/.local/bin/flameshot #### 在 Gnome 上 (Ubuntu、Fedora 等) 要在 Gnome 中使用 Flameshot 而不是默认的截图应用程序,我们需要移除 Prt Sc 键上的绑定,然后为 `flameshot gui` 创建一个新绑定([改编自](https://askubuntu.com/posts/1039949/revisions) [Pavel 在 AskUbuntu 上的回答](https://askubuntu.com/revisions/1036473/1))。 1. 移除 Prt Sc 上的绑定: 转到 _设置_ > _键盘_ > _查看和自定义快捷键_ > _截图_ > _交互式截图_ 并按下 `backspace` 2. 在 Prt Sc 上添加自定义绑定: 转到 _设置_ > _键盘_ > _查看和自定义快捷键_ > _自定义快捷键_ 并按下底部的 '+' 按钮。 3. 按您的喜好命名命令,例如 `flameshot`。并在命令中插入 `/usr/bin/flameshot gui`;如果通过 flatpak 安装,则使用 `flatpak run org.flameshot.Flameshot gui`。 4. 然后点击 "_设置快捷键.._" 并按下 Prt Sc。这将显示为 "_print_"。 现在每次按下 Prt Sc 时,它将启动 Flameshot GUI 而不是默认应用程序。 #### 在 XFCE 4 上 1. 转到 `键盘` 设置 2. 切换到 `应用程序快捷键` 选项卡 3. 找到条目 命令 快捷键 xfce4-screenshooter -fd 1 Print 4. 将 `xfce4-screenshooter -fd 1` 替换为 `flameshot gui` 现在每次按下 Prt Sc 时,它将启动 Flameshot GUI 而不是默认应用程序。 #### 在 Fluxbox 上 1. 编辑您的 `~/.fluxbox/keys` 文件 2. 添加一个新条目。`Print` 是按键名称,`flameshot gui` 是 shell 命令;更多选项请参见 [fluxbox](https://sillyslux.github.io/fluxbox-wiki/en/wiki/Keyboard-Shortcuts/)。 Print :Exec flameshot gui 3. 使用菜单中的 **Reconfigure** 选项刷新 Fluxbox 配置。 ## 注意事项 - 实验性的 Gnome Wayland 和 Plasma Wayland 支持。 - 如果您使用的是 Gnome,则需要安装 [AppIndicator 和 KStatusNotifierItem 支持](https://extensions.gnome.org/extension/615/appindicator-support/) 扩展,才能看到系统托盘图标。 - 当您处于截图模式且没有活动选区时,按下 EnterCtrl + C,整个桌面将被复制到剪贴板。按下 Ctrl + S 会将您的截图保存到文件中。查看 [快捷键](#keyboard-shortcuts) 获取更多信息。 - Flameshot 在包含 D-Bus 的桌面环境中效果最佳。有关在最小化窗口管理器(dwm、i3、xmonad 等)中使用 Flameshot 的提示,请参阅这篇[文章](https://wiki.archlinux.org/index.php/Flameshot#Troubleshooting)。 - 为了加快 Flameshot 的首次启动速度(应用的 D-Bus 初始化可能很慢),请考虑在开机时自动启动应用程序。 - 快速提示:如果您没有将 Flameshot 设置为开机自动启动,并且想要设置键盘快捷键,请使用以下内容作为键绑定的命令: ( flameshot &; ) && ( sleep 0.5s && flameshot gui ) ## 安装 Flameshot 可以安装在 Linux、Microsoft Windows 和 macOS 上。 ### 预编译包 [GitHub 项目仓库的发布页面](https://github.com/flameshot-org/flameshot/releases)提供了一些预编译包。 ### 软件源中的包 某些 Linux 发行版的软件源中提供了相应的包: - [Arch](https://archlinux.org/packages/extra/x86_64/flameshot/):`pacman -S flameshot` + 快照版也可通过 AUR 获取:[flameshot-git](https://aur.archlinux.org/packages/flameshot-git)。 - [Debian 10+](https://tracker.debian.org/pkg/flameshot):`apt install flameshot` + 适用于 Debian 9 ("Stretch") 的包也可[通过 stretch-backports 获取](https://backports.debian.org/)。 - [Ubuntu](https://launchpad.net/ubuntu/+source/flameshot):`apt install flameshot` - [openSUSE](https://software.opensuse.org/package/flameshot):`zypper install flameshot` - [Void Linux](https://github.com/void-linux/void-packages/tree/master/srcpkgs/flameshot):`xbps-install flameshot` - [Solus](https://dev.getsol.us/source/flameshot/):`eopkg it flameshot` - [Fedora](https://src.fedoraproject.org/rpms/flameshot):`dnf install flameshot` - [NixOS](https://search.nixos.org/packages?query=flameshot):`nix-env -iA nixos.flameshot` - [ALT](https://packages.altlinux.org/en/sisyphus/srpms/flameshot/):`su - -c "apt-get install flameshot"` - [Snap/Flatpak/AppImage](https://github.com/flameshotapp/packages) - [Docker](https://github.com/ManuelLR/docker-flameshot) - [Windows](https://github.com/majkinetor/au-packages/tree/master/flameshot) ### macOS - [MacPorts](https://www.macports.org):`sudo port selfupdate && sudo port install flameshot` - [Homebrew](https://brew.sh):`brew install --cask flameshot` **请注意**,由于 macOS 安全功能,您可能无法打开使用 brew 安装的 flameshot。 如果您看到消息 `“flameshot”无法打开,因为无法验证开发者。`,您将需要 按照以下步骤操作: 1. 转到“应用程序”文件夹(Finder > 前往 > 应用程序,或 Shift+Command+A) 2. 右键点击“flameshot.app”并从上下文菜单中选择“打开” 3. 在对话框中点击“打开” 在 macOS 15 及更高版本上,执行此操作后您必须转到“系统设置”->“隐私与安全性”并点击“仍然允许”,或者您可以在第一次使用以下命令打开 flameshot。 ```sudo xattr -rd com.apple.quarantine /Applications/flameshot.app``` 完成上述所有步骤后,`flameshot` 将可以在您的 Mac 上正常打开。 ### Windows - [Scoop](https://github.com/ScoopInstaller/Extras/blob/master/bucket/flameshot.json):`scoop install flameshot`
Expand this section to see what distros are using an up to date version of flameshot Packaging status
### 托盘图标 **请注意**,要让 Flameshot 图标出现在您的托盘区域,您应该安装系统托盘软件。对于使用诸如 [dwm](https://dwm.suckless.org/) 之类最小化[窗口管理器](https://wiki.archlinux.org/index.php/window_manager)的用户来说尤其如此。在某些[桌面环境](https://wiki.archlinux.org/index.php/Desktop_environment)安装(例如 Gnome)中,系统托盘可能缺失,您可以安装应用程序或插件(例如 [Gnome shell 扩展](https://extensions.gnome.org/extension/1503/tray-icons/))以向您的设置中添加系统托盘。已有[报告](https://github.com/flameshot-org/flameshot/issues/1009#issuecomment-700781081)) 称包括 Flameshot 在内的某些软件的图标不会显示在 [gnome-shell-extension-appindicator](https://github.com/ubuntu/gnome-shell-extension-appindicator) 中。 或者,如果您不想使用系统托盘,可以随时从终端调用 Flameshot。参见[用法部分](#usage)。 ## 编译 要在您的系统中构建应用程序,您需要安装它所需的依赖项,并且不同发行版的包名称可能会有所不同,请参阅下面的[依赖项](#dependencies)获取更多信息。您也可以通过[其安装程序](https://www.qt.io/download-qt-installer)安装大部分 Qt 依赖项。如果您之前开发过 Qt 应用程序,您可能已经拥有它们了。 本项目使用 [CMake](https://cmake.org/) 构建系统,因此您需要安装它才能构建项目(在大多数 Linux 发行版中,它作为一个名为 `cmake` 的包在标准存储库中提供)。如果您的发行版提供的 CMake 版本太旧(例如 Ubuntu 或 Debian),您可以[在官方网站上下载它](https://cmake.org/download/)。 您也可以在 C++ IDE 中打开并构建/调试项目。例如,在 Qt Creator 中,您只需在将 CMake 安装到系统后,通过菜单中的 `打开文件或项目` 来打开 `CMakeLists.txt`。[关于 Qt Creator 中 CMake 项目的更多信息](https://doc.qt.io/qtcreator/creator-project-cmake.html)。 ### 依赖项 #### 编译时 - Qt >= 6.2.4(在 Ubuntu Jammy 上默认可用) + 开发工具 - GCC >= 11 - CMake >= 3.22 #### 运行时 - Qt + SVG #### 可选 - Git - OpenSSL - CA Certificates - Qt Image Formats - 用于提供额外的导出图像格式(例如 tiff、webp 等) #### Debian ``` # Compile-time apt install g++ cmake build-essential qt6-base-dev qt6-tools-dev-tools qt6-svg-dev qt6-tools-dev # Run-time apt install libkf6guiaddons-dev libqt6dbus6 libqt6network6 libqt6core6 libqt6widgets6 libqt6gui6 libqt6svg6 qt6-qpa-plugins # 可选 apt install git openssl ca-certificates qt6-image-formats-plugins ``` #### Fedora ``` # Compile-time dnf install gcc-c++ cmake qt6-qtbase-devel qt6-qtsvg-devel qt6-qttools qt6-linguist qt6-qttools-devel kf6-kguiaddons-devel # Run-time dnf install qt6-qtbase qt6-qtsvg kf6-kguiaddons # 可选 dnf install git openssl ca-certificates qt6-qtimageformats ``` #### Arch ``` # Compile-time pacman -S cmake base-devel git qt6-base qt6-tools kguiaddons # Run-time pacman -S qt6-svg # 可选 pacman -S openssl ca-certificates qt6-imageformats ``` #### Nix 开发 Shell: ``` # 不使用 flakes: nix-shell # 使用 flakes: nix develop ``` ``` # 构建 flameshot nix build # 构建并运行 flameshot nix run ``` #### macOS 首先,您需要安装 [brew](https://brew.sh),然后安装依赖项 ``` brew install qt6 brew install cmake ``` ### 构建 安装所有依赖项后,即可构建 Flameshot。 #### 安装/构建目录 为了能正确加载翻译,构建过程需要知道您要将 Flameshot 安装到哪里。 ``` # 构建文件将放置的目录,可以是相对路径 export BUILD_DIR=build # 安装 Flameshot 的目录前缀。如果您只是构建而不想 # 安装,请注释掉此环境变量。 # 这不包括安装路径的 bin/flameshot 部分, # 例如,在 /opt/flameshot/bin/flameshot 中,CMAKE_INSTALL_PREFIX 为 /opt/flameshot # 这必须是绝对路径。要求 CMAKE 3.29。 export CMAKE_INSTALL_PREFIX=/opt/flameshot # Linux cmake -S . -B "$BUILD_DIR" \ && cmake --build "$BUILD_DIR" #MacOS cmake -S . -B "$BUILD_DIR" \ -DQt6_DIR="$(brew --prefix qt6)/lib/cmake/Qt6" \ && cmake --build "$BUILD_DIR" ``` 当 `cmake --build` 命令完成后,您可以从 `project_folder/build/src` 文件夹启动 Flameshot。 ### 安装 请注意,如果您从源代码安装,_没有_ 卸载程序,因此请考虑安装到自定义目录。 #### 安装到自定义目录 确保您使用的是 `>= 3.29` 的 cmake,并在构建 Flameshot 时将 `$CMAKE_INSTALL_PREFIX` 设置为安装目录。如果不这样做,在使用自定义目录时将无法找到翻译。 然后,运行以下命令: ``` # !请使用 CMAKE_INSTALL_PREFIX 构建并使用 cmake >= 3.29!使用旧版 cmake 将导致 # 安装到默认的 /usr/local 目录中。 # 您可能需要使用特权运行此命令 cmake --install "$BUILD_DIR" ``` #### 安装到默认安装目录 ``` # 您可能需要使用特权运行此命令 cmake --install "$BUILD_DIR" ``` ### 常见问题解答 ## 许可证 - 主要代码在 [GPLv3](LICENSE) 下授权 - Flameshot 的标志在 [Free Art License v1.3](data/img/app/flameshotLogoLicense.txt) 下授权 - 按钮图标在 Apache License 2.0 下授权。参见:https://github.com/google/material-design-icons - capture/capturewidget.cpp 的代码基于 https://github.com/ckaiser/Lightscreen/blob/master/dialogs/areadialog.cpp (GPLv2) - capture/capturewidget.h 的代码基于 https://github.com/ckaiser/Lightscreen/blob/master/dialogs/areadialog.h (GPLv2) - 我从 KSnapshot regiongrabber.cpp 的 `796531` 修订版中复制了几行代码 (LGPL) - Qt-Color-Widgets 取自并修改自 https://github.com/mbasaglia/Qt-Color-Widgets(参见项目中的许可证和例外情况)(LGPL/GPL) 信息:如果我获取了您项目的代码,并暗示重新授权为 GPLv3,您可以在应用项目原有先前许可证的情况下重用我的更改。 ## 隐私政策 除非用户或安装/操作人员特别要求,否则本程序不会将任何信息传输到其他网络系统。 ## 代码签名政策 对于 Windows 二进制文件,本程序使用由 [SignPath.io](https://signpath.io?utm_source=foundation&utm_medium=github&utm_campaign=flameshot) 提供的免费代码签名,以及由 [SignPath Foundation](https://signpath.org?utm_source=foundation&utm_medium=github&utm_campaign=flameshot) 提供的证书。 代码签名目前是一个手动过程,因此并非每个补丁版本都会被签名。 ## 贡献 如果您想要贡献,请查看 [CONTRIBUTING.md](docs/CONTRIBUTING.md) ## 致谢 感谢那些在早期开发过程中表现出浓厚兴趣的人: - [lupoDharkael](https://github.com/lupoDharkael) - [Cosmo](https://github.com/philpem) - [XerTheSquirrel](https://github.com/XerTheSquirrel) - [Sugus GNU/Linux 的成员们](https://github.com/SUGUS-GNULinux) - ismatori 感谢赞助商: - [Namecheap](https://www.namecheap.com/) - [JetBrains](https://www.jetbrains.com/) - [SignPath](https://signpath.io/) - [addy.io](https://addy.io/)
标签:Bash脚本, C++, Flameshot, 图像标注, 图像编辑, 屏幕截图, 截图软件, 截屏工具, 效率工具, 数据擦除, 桌面应用