mirror of
https://github.com/ChrisTitusTech/linutil.git
synced 2024-11-05 13:15:21 +00:00
Merge branch 'main' of https://github.com/ChrisTitusTech/linutil
This commit is contained in:
commit
8ce935c110
16
README.md
16
README.md
|
@ -1,13 +1,23 @@
|
||||||
## Chris Titus Tech's Linux Utility
|
# Chris Titus Tech's Linux Utility
|
||||||
|
[![Version](https://img.shields.io/github/v/release/ChrisTitusTech/linutil?color=%230567ff&label=Latest%20Release&style=for-the-badge)](https://github.com/ChrisTitusTech/linutil/releases/latest)
|
||||||
|
![GitHub Downloads (specific asset, all releases)](https://img.shields.io/github/downloads/ChrisTitusTech/linutil/linutil?label=Total%20Downloads&style=for-the-badge)
|
||||||
|
|
||||||
![pv](https://i.imgur.com/quoAwXf.png)
|
![Preview](docs/assets/preview.png)
|
||||||
|
|
||||||
## Usage
|
## 💡 Usage
|
||||||
|
|
||||||
Open your terminal and paste this command
|
Open your terminal and paste this command
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL https://christitus.com/linux | sh
|
curl -fsSL https://christitus.com/linux | sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 💖 Support
|
||||||
|
- To morally and mentally support the project, make sure to leave a ⭐️!
|
||||||
|
|
||||||
|
## 🏅 Thanks to all Contributors
|
||||||
|
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
||||||
|
|
||||||
|
[![Contributors](https://contrib.rocks/image?repo=ChrisTitusTech/linutil)](https://github.com/ChrisTitusTech/linutil/graphs/contributors)
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
Rust Shell written by [@JustLinuxUser](https://github.com/JustLinuxUser)
|
Rust Shell written by [@JustLinuxUser](https://github.com/JustLinuxUser)
|
||||||
|
|
Binary file not shown.
1
docs/KnownIssues.md
Normal file
1
docs/KnownIssues.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
# Known Issues
|
BIN
docs/assets/favicon.png
Normal file
BIN
docs/assets/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.6 KiB |
BIN
docs/assets/mainpage.png
Normal file
BIN
docs/assets/mainpage.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
docs/assets/preview.png
Normal file
BIN
docs/assets/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
2
docs/contribute.md
Normal file
2
docs/contribute.md
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# How to Contribute?
|
||||||
|
|
4
docs/faq.md
Normal file
4
docs/faq.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# FAQ's
|
||||||
|
|
||||||
|
## How do I uninstall LinUtil?
|
||||||
|
* You do not have to uninstall LinUtil. As it is a script you run from your terminal it only loads into your RAM. This means as soon as you close LinUtil it will be deleted off your system.
|
16
docs/index.md
Normal file
16
docs/index.md
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# Welcome to the LinUtil Documentation!
|
||||||
|
|
||||||
|
[![Version](https://img.shields.io/github/v/release/ChrisTitusTech/linutil?color=%230567ff&label=Latest%20Release&style=for-the-badge)](https://github.com/ChrisTitusTech/linutil/releases/latest)
|
||||||
|
![GitHub Downloads (specific asset, all releases)](https://img.shields.io/github/downloads/ChrisTitusTech/linutil/start.sh?label=Total%20Downloads&style=for-the-badge)
|
||||||
|
|
||||||
|
## Running latest release of LinUtil
|
||||||
|
|
||||||
|
* You will first need to start a Terminal on your linux machine.
|
||||||
|
* Now you will need to run following command:
|
||||||
|
```
|
||||||
|
curl -fsSL https://christitus.com/linux | sh
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info
|
||||||
|
|
||||||
|
LinUtil is updated weekly as of the time of writing. Consequently, features and functionalities may evolve, and the documentation may not always reflect the most current images or information.
|
3
docs/updates.md
Normal file
3
docs/updates.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Update Log
|
||||||
|
|
||||||
|
#
|
9
docs/userguide.md
Normal file
9
docs/userguide.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Walkthrough
|
||||||
|
|
||||||
|
## How to run LinUtil?
|
||||||
|
Run the following command in a terminal on your Linux System:
|
||||||
|
```
|
||||||
|
curl -fsSL https://christitus.com/linux | sh
|
||||||
|
```
|
||||||
|
Once you have run that command you will see the following GUI show on your screen:
|
||||||
|
![Main Page](assets/mainpage.png)
|
66
mkdocs.yml
Normal file
66
mkdocs.yml
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
site_name: Chris Titus LinUtil Official Documentation
|
||||||
|
repo_url: https://github.com/ChrisTitusTech/linutil
|
||||||
|
|
||||||
|
nav:
|
||||||
|
- Introduction: 'index.md'
|
||||||
|
- User Guide: 'userguide.md'
|
||||||
|
- Contribute: 'contribute.md'
|
||||||
|
- Updates: 'updates.md'
|
||||||
|
- Known Issues: 'KnownIssues.md'
|
||||||
|
- FAQ: 'faq.md'
|
||||||
|
|
||||||
|
theme:
|
||||||
|
name: material
|
||||||
|
custom_dir: 'overrides'
|
||||||
|
features:
|
||||||
|
- navigation.tabs
|
||||||
|
- navigation.sections
|
||||||
|
- toc.integrate
|
||||||
|
- navigation.top
|
||||||
|
- search.suggest
|
||||||
|
- search.highlight
|
||||||
|
- content.tabs.link
|
||||||
|
- content.code.annotation
|
||||||
|
- content.code.copy
|
||||||
|
language: en
|
||||||
|
logo: assets/favicon.png
|
||||||
|
favicon: assets/favicon.png
|
||||||
|
palette:
|
||||||
|
- media: "(prefers-color-scheme: light)"
|
||||||
|
scheme: default
|
||||||
|
toggle:
|
||||||
|
icon: material/toggle-switch-off-outline
|
||||||
|
name: Switch to dark mode
|
||||||
|
primary: black
|
||||||
|
accent: purple
|
||||||
|
- media: "(prefers-color-scheme: dark)"
|
||||||
|
scheme: slate
|
||||||
|
toggle:
|
||||||
|
icon: material/toggle-switch
|
||||||
|
name: Switch to light mode
|
||||||
|
primary: teal
|
||||||
|
accent: lime
|
||||||
|
markdown_extensions:
|
||||||
|
- admonition
|
||||||
|
- pymdownx.details
|
||||||
|
- pymdownx.superfences
|
||||||
|
- pymdownx.superfences:
|
||||||
|
custom_fences:
|
||||||
|
- name: mermaid
|
||||||
|
class: mermaid
|
||||||
|
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||||
|
- abbr
|
||||||
|
- attr_list
|
||||||
|
- pymdownx.snippets
|
||||||
|
- md_in_html
|
||||||
|
- pymdownx.superfences
|
||||||
|
- pymdownx.tabbed:
|
||||||
|
alternate_style: true
|
||||||
|
- pymdownx.highlight:
|
||||||
|
anchor_linenums: true
|
||||||
|
line_spans: __span
|
||||||
|
pygments_lang_class: true
|
||||||
|
- pymdownx.inlinehilite
|
||||||
|
- def_list
|
||||||
|
- pymdownx.tasklist:
|
||||||
|
custom_checkbox: true
|
12
overrides/main.html
Normal file
12
overrides/main.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
{{ super() }}
|
||||||
|
<div style="color: red; text-align: center; padding: 10px; font-size: 20px;">
|
||||||
|
<strong>Announcement:</strong> This documentation is still in progress.
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block footer %}
|
||||||
|
{# Empty block to override the footer #}
|
||||||
|
{% endblock %}
|
|
@ -64,7 +64,22 @@ install_additional_dependencies() {
|
||||||
|
|
||||||
echo "Lutris Installation complete."
|
echo "Lutris Installation complete."
|
||||||
echo "Installing steam..."
|
echo "Installing steam..."
|
||||||
sudo apt-get install -y steam
|
|
||||||
|
#Install steam on Debian
|
||||||
|
if (lsb_release -i | grep -qi Debian); then
|
||||||
|
#Enable i386 repos
|
||||||
|
sudo dpkg --add-architecture i386
|
||||||
|
# Install software-properties-common to be able to add repos
|
||||||
|
sudo apt-get install -y software-properties-common
|
||||||
|
# Add repos necessary for installing steam
|
||||||
|
sudo apt-add-repository contrib -y
|
||||||
|
sudo apt-add-repository non-free -y
|
||||||
|
#Install steam
|
||||||
|
sudo apt-get install steam-installer -y
|
||||||
|
else
|
||||||
|
#Install steam on Ubuntu
|
||||||
|
sudo apt-get install -y steam
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
*zypper)
|
*zypper)
|
||||||
|
|
||||||
|
|
11
src/list.rs
11
src/list.rs
|
@ -1,5 +1,3 @@
|
||||||
use std::usize;
|
|
||||||
|
|
||||||
use crate::{float::floating_window, theme::*};
|
use crate::{float::floating_window, theme::*};
|
||||||
use crossterm::event::{KeyCode, KeyEvent, KeyEventKind};
|
use crossterm::event::{KeyCode, KeyEvent, KeyEventKind};
|
||||||
use ego_tree::{tree, NodeId};
|
use ego_tree::{tree, NodeId};
|
||||||
|
@ -169,7 +167,10 @@ impl CustomList {
|
||||||
// node
|
// node
|
||||||
let list = List::new(items)
|
let list = List::new(items)
|
||||||
.highlight_style(Style::default().reversed())
|
.highlight_style(Style::default().reversed())
|
||||||
.block(Block::default().borders(Borders::ALL).title(format!("Linux Toolbox - {}", chrono::Local::now().format("%Y-%m-%d"))))
|
.block(Block::default().borders(Borders::ALL).title(format!(
|
||||||
|
"Linux Toolbox - {}",
|
||||||
|
chrono::Local::now().format("%Y-%m-%d")
|
||||||
|
)))
|
||||||
.scroll_padding(1);
|
.scroll_padding(1);
|
||||||
|
|
||||||
// Render it
|
// Render it
|
||||||
|
@ -251,7 +252,7 @@ impl CustomList {
|
||||||
// Get the selected command
|
// Get the selected command
|
||||||
if let Some(selected_command) = self.get_selected_command() {
|
if let Some(selected_command) = self.get_selected_command() {
|
||||||
// If command is a folder, we don't display a preview
|
// If command is a folder, we don't display a preview
|
||||||
if selected_command == "" {
|
if selected_command.is_empty() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,4 +384,4 @@ impl CustomList {
|
||||||
fn at_root(&self) -> bool {
|
fn at_root(&self) -> bool {
|
||||||
self.visit_stack.len() == 1
|
self.visit_stack.len() == 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,6 +95,5 @@ fn run<B: Backend>(terminal: &mut Terminal<B>) -> io::Result<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ pub struct RunningCommand {
|
||||||
buffer: Arc<Mutex<Vec<u8>>>,
|
buffer: Arc<Mutex<Vec<u8>>>,
|
||||||
|
|
||||||
/// A handle of the tread where the command is being executed
|
/// A handle of the tread where the command is being executed
|
||||||
command_thread: Option<JoinHandle<ExitStatus>>,
|
command_thread: Option<JoinHandle<ExitStatus>>,
|
||||||
|
|
||||||
/// A handle to kill the running process, it's an option because it can only be used once
|
/// A handle to kill the running process, it's an option because it can only be used once
|
||||||
child_killer: Option<Receiver<Box<dyn ChildKiller + Send + Sync>>>,
|
child_killer: Option<Receiver<Box<dyn ChildKiller + Send + Sync>>>,
|
||||||
|
@ -279,4 +279,4 @@ impl RunningCommand {
|
||||||
// Send the keycodes to the virtual terminal
|
// Send the keycodes to the virtual terminal
|
||||||
let _ = self.writer.write_all(&input_bytes);
|
let _ = self.writer.write_all(&input_bytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,9 @@ pub const THEMES: [Theme; 2] = [
|
||||||
];
|
];
|
||||||
|
|
||||||
pub fn get_theme() -> &'static Theme {
|
pub fn get_theme() -> &'static Theme {
|
||||||
&THEMES[unsafe { THEME_IDX } ]
|
&THEMES[unsafe { THEME_IDX }]
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_theme(idx: usize){
|
pub fn set_theme(idx: usize) {
|
||||||
unsafe { THEME_IDX = idx };
|
unsafe { THEME_IDX = idx };
|
||||||
}
|
}
|
||||||
|
|
27
start.sh
27
start.sh
|
@ -1,31 +1,34 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
RC='\033[0m'
|
rc='\033[0m'
|
||||||
RED='\033[0;31m'
|
red='\033[0;31m'
|
||||||
|
|
||||||
linutil="https://github.com/ChrisTitusTech/linutil/releases/latest/download/linutil"
|
binary_url="https://github.com/ChrisTitusTech/linutil/releases/latest/download/linutil"
|
||||||
|
|
||||||
check() {
|
check() {
|
||||||
local exit_code=$1
|
exit_code=$1
|
||||||
local message=$2
|
message=$2
|
||||||
|
|
||||||
if [ $exit_code -ne 0 ]; then
|
if [ "$exit_code" -ne 0 ]; then
|
||||||
echo -e "${RED}ERROR: $message${RC}"
|
printf '%sERROR: %s%s\n' "$red" "$message" "$rc"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
unset exit_code
|
||||||
|
unset message
|
||||||
}
|
}
|
||||||
|
|
||||||
TMPFILE=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
check $? "Creating the temporary file"
|
check $? "Creating the temporary file"
|
||||||
|
|
||||||
curl -fsL $linutil -o $TMPFILE
|
curl -fsL "$binary_url" -o "$temp_file"
|
||||||
check $? "Downloading linutil"
|
check $? "Downloading linutil"
|
||||||
|
|
||||||
chmod +x $TMPFILE
|
chmod +x "$temp_file"
|
||||||
check $? "Making linutil executable"
|
check $? "Making linutil executable"
|
||||||
|
|
||||||
"$TMPFILE"
|
"$temp_file"
|
||||||
check $? "Executing linutil"
|
check $? "Executing linutil"
|
||||||
|
|
||||||
rm -f $TMPFILE
|
rm -f "$temp_file"
|
||||||
check $? "Deleting the temporary file"
|
check $? "Deleting the temporary file"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user