mirror of
https://github.com/xlmnxp/blue-recorder.git
synced 2024-11-23 17:13:11 +03:00
Merge remote branch 'xlmnxp-repo/master'
This commit is contained in:
commit
6423b7335b
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -135,6 +135,7 @@ version = "0.1.2"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"gdk",
|
||||
"gdk-pixbuf",
|
||||
"gettext-rs",
|
||||
"gio",
|
||||
"glib",
|
||||
|
@ -17,6 +17,7 @@ gettext-rs = "0.5.0"
|
||||
subprocess = "0.2.6"
|
||||
zbus = "1.8.0"
|
||||
zvariant = "2.5.0"
|
||||
gdk-pixbuf = "0.9.0"
|
||||
|
||||
[dependencies.gtk]
|
||||
version = "0.9.0"
|
||||
|
56
README.md
Normal file
56
README.md
Normal file
@ -0,0 +1,56 @@
|
||||
# Blue Recorder
|
||||
<img src="screenshots/screenshot1.png"/>
|
||||
|
||||
A simple desktop recorder for Linux systems. Built using GTK+ 3 and ffmpeg.
|
||||
|
||||
- It supports recording audio and video on almost all Linux interfaces with support for Wayland display server on GNOME session.
|
||||
- The following formats are currently supported: mkv, avi, mp4, wmv, gif and nut.
|
||||
- You can stop the recording process easily by right-clicking the icon and choosing "Stop Record". Or middle-clicking the recording icon in the notifications area (but doesn't work on all interfaces).
|
||||
- You can choose the audio input source you want from the list.
|
||||
- You can also set the default values you want by simply changing them in the interface, and the program will save them for you for the next time you open it.
|
||||
|
||||
it based on [Green Recorder](https://github.com/mhsabbagh/green-recorder) and rewritten in Rust with improvements
|
||||
|
||||
## Installation
|
||||
Blue Recorder available as Snap package
|
||||
|
||||
|
||||
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/blue-recorder)
|
||||
|
||||
## Build from source
|
||||
Blue Recorder depend in the following dependencies
|
||||
```
|
||||
ffmpeg
|
||||
gtk
|
||||
gdk
|
||||
gio
|
||||
gettext
|
||||
libappindicator3
|
||||
x11-utils
|
||||
pulseaudio
|
||||
```
|
||||
|
||||
install dependencies Ubuntu and Debian based distros
|
||||
```
|
||||
sudo apt install build-essential clang cargo libappindicator3-1 x11-utils gettext pulseaudio ffmpeg
|
||||
```
|
||||
the use `Cargo` to build it
|
||||
```
|
||||
git clone https://github.com/xlmnxp/blue-recorder
|
||||
cd <Project Directory>
|
||||
cargo build --release
|
||||
cp -a data interfaces po target/release
|
||||
```
|
||||
then you will find the executable file at
|
||||
`<Project Directory>/target/release/blue-recorder`
|
||||
|
||||
## License
|
||||
```
|
||||
GNU General Public License version 3
|
||||
License Copyright: Copyright © 2007 Free Software Foundation, Inc.
|
||||
License License: "Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed." (www.gnu.org/licenses/gpl-3.0.en.html).
|
||||
License Contact: Free Software Foundation (fsf.org).
|
||||
SPDX short identifier: GPL-3.0-only
|
||||
Further resources...
|
||||
```
|
||||
[read the license](LICENSE.md)
|
BIN
screenshots/screenshot1.png
Normal file
BIN
screenshots/screenshot1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
BIN
screenshots/screenshot2.png
Normal file
BIN
screenshots/screenshot2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
49
src/main.rs
49
src/main.rs
@ -1,4 +1,5 @@
|
||||
extern crate gdk;
|
||||
extern crate gdk_pixbuf;
|
||||
extern crate gettextrs;
|
||||
extern crate gio;
|
||||
extern crate gtk;
|
||||
@ -9,6 +10,7 @@ mod ffmpeg_interface;
|
||||
|
||||
// use gio::prelude::*;
|
||||
use ffmpeg_interface::{Ffmpeg, ProgressWidget};
|
||||
use gdk_pixbuf::Pixbuf;
|
||||
use gettextrs::{bindtextdomain, gettext, setlocale, textdomain, LocaleCategory};
|
||||
use glib::signal::Inhibit;
|
||||
use gtk::prelude::*;
|
||||
@ -203,28 +205,6 @@ fn main() {
|
||||
config_management::set_bool("default", "followmousecheck", switch.get_active());
|
||||
});
|
||||
|
||||
// About Dialog
|
||||
about_menu_item.set_label("about");
|
||||
about_dialog.set_transient_for(Some(&main_window));
|
||||
about_dialog.set_program_name(&gettext("Blue Recorder"));
|
||||
about_dialog.set_version(Some("3.2.3"));
|
||||
about_dialog.set_copyright(Some("© 2021 Salem Yaslem"));
|
||||
about_dialog.set_wrap_license(true);
|
||||
about_dialog.set_license(Some("Blue Recorder 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.\n\nBlue Recorder 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.\n\nSee the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Blue Recorder. If not, see <http://www.gnu.org/licenses/>."));
|
||||
about_dialog.set_comments(Some(&gettext(
|
||||
"A simple screen recorder for Linux desktop. Supports Wayland & Xorg.",
|
||||
)));
|
||||
about_dialog.set_authors(&[
|
||||
"Salem Yaslem <s@sy.sa>",
|
||||
"M.Hanny Sabbagh <mhsabbagh@outlook.com>",
|
||||
"Alessandro Toia <gort818@gmail.com>",
|
||||
"Patreon Supporters: Ahmad Gharib, Medium,\nWilliam Grunow, Alex Benishek.",
|
||||
]);
|
||||
about_dialog.set_artists(&["Mustapha Assabar"]);
|
||||
about_dialog.set_website(Some("https://github.com/xlmnxp/blue-recorder/"));
|
||||
about_dialog.set_logo_icon_name(Some("blue-recorder"));
|
||||
about_dialog.set_transient_for(Some(&main_window));
|
||||
|
||||
// Buttons
|
||||
window_grab_button.set_label(&gettext("Select a Window"));
|
||||
area_grab_button.set_label(&gettext("Select an Area"));
|
||||
@ -405,6 +385,31 @@ fn main() {
|
||||
_ffmpeg_record_interface.borrow_mut().clone().play_record();
|
||||
});
|
||||
|
||||
// About Dialog
|
||||
about_menu_item.set_label("about");
|
||||
about_dialog.set_transient_for(Some(&main_window));
|
||||
about_dialog.set_program_name(&gettext("Blue Recorder"));
|
||||
about_dialog.set_version(Some("3.2.3"));
|
||||
about_dialog.set_copyright(Some("© 2021 Salem Yaslem"));
|
||||
about_dialog.set_wrap_license(true);
|
||||
about_dialog.set_license(Some("Blue Recorder 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.\n\nBlue Recorder 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.\n\nSee the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Blue Recorder. If not, see <http://www.gnu.org/licenses/>."));
|
||||
about_dialog.set_comments(Some(&gettext(
|
||||
"A simple screen recorder for Linux desktop. Supports Wayland & Xorg.",
|
||||
)));
|
||||
about_dialog.set_authors(&[
|
||||
"Salem Yaslem <s@sy.sa>",
|
||||
"M.Hanny Sabbagh <mhsabbagh@outlook.com>",
|
||||
"Alessandro Toia <gort818@gmail.com>",
|
||||
"Patreon Supporters: Ahmad Gharib, Medium,\nWilliam Grunow, Alex Benishek.",
|
||||
]);
|
||||
about_dialog.set_artists(&["Mustapha Assabar"]);
|
||||
about_dialog.set_website(Some("https://github.com/xlmnxp/blue-recorder/"));
|
||||
about_dialog.set_logo_icon_name(Some("blue-recorder"));
|
||||
about_dialog.set_logo(Some(
|
||||
&Pixbuf::from_file(&indicator_icon_path.to_str().unwrap()).unwrap(),
|
||||
));
|
||||
about_dialog.set_transient_for(Some(&main_window));
|
||||
|
||||
// Windows
|
||||
// hide area chooser after it deleted.
|
||||
let _area_chooser_window = area_chooser_window.clone();
|
||||
|
Loading…
Reference in New Issue
Block a user