delete electron

This commit is contained in:
Oğuzhan İnan
2017-08-23 14:47:48 +03:00
parent 96c3cb364b
commit 7e2dbef74a
94 changed files with 0 additions and 8669 deletions

View File

@@ -1,4 +0,0 @@
{
"presets": ["es2015"],
"comments": false
}

12
.gitignore vendored
View File

@@ -1,12 +0,0 @@
.vscode/
.idea/
node_modules/
release-builds/
dest/
dist/
bundle/*.js
bundle/**/*.js
bundle/**/**/*.js
npm-debug\.log
package-lock\.json

21
LICENSE
View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2017 Oguzhan Inan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

150
README.md
View File

@@ -1,150 +0,0 @@
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Header.png" width="800">
</p>
<p align="center">
<b>Linux System Optimizer and Monitoring</b>
</p>
<p align="center">
<a href="https://github.com/sindresorhus/awesome-electron">
<img alt="Awesome" src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"/>
</a>
<a href="https://sourceforge.net/projects/stacer/files/" rel="nofollow">
<img alt="Download Stacer" src="https://img.shields.io/sourceforge/dt/stacer.svg"/>
</a>
<a href="http://www.kernel.org">
<img alt="Platform (GNU/Linux)" src="https://img.shields.io/badge/platform-GNU/Linux-blue.svg"/>
</a>
</p>
<p align="center">
<a href="https://sourceforge.net/projects/stacer/files/" >
<img src="https://a.fsdn.com/con/app/sf-download-button" />
</a>
</p>
## Reviews
<p align="left">
<a href="http://www.omgubuntu.co.uk/2017/01/stacer-system-optimizer-for-ubuntu">
<img width="70px" src="http://www.omgubuntu.co.uk/wp-content/themes/omgubuntu-theme-3.6.1/images/logo.png"/>
</a>
<a href="http://www.diolinux.com.br/2017/02/stacer-um-programa-para-otimizar-o-ubuntu.html">
<img width="170px" src="http://coletivo.semanadolinux.com.br/images/site/diolinux.png"/>
</a>
<a href="https://www.genbeta.com/linux/stacer-una-app-todo-en-uno-que-te-deja-monitorizar-y-optimizar-el-sistema-en-ubuntu">
<img width="160px" src="http://seanfee.com/wp-content/uploads/2014/04/Logo_genbeta.jpg"/>
</a>
<a href="http://computerhoy.com/noticias/software/stacer-herramienta-que-te-permite-optimizar-ubuntu-57974">
<img width="130px" src="http://computerhoy.com/sites/computerhoy.com/themes/computerhoy/logo-puntocom.png"/>
</a>
<a href="http://www.dobreprogramy.pl/Stacer-program-do-optymalizacji-Ubuntu-ktory-wyglada-jakby-uciekl-z-Windowsa,News,78941.html">
<img width="160px" src="http://storage.dobreprogramy.pl/artykuly/9urodziny/logoDP-napis.png"/>
</a>
<a href="http://blog.desdelinux.net/optimizar-debian-ubuntu-linux-mint-derivados-stacer/">
<img width="160px" src="http://i.imgur.com/eV1WxYZ.png"/>
</a>
<a href="http://www.techrepublic.com/article/how-to-install-stacer-for-quick-linux-system-optimization/">
<img width="160px" src="https://static1.squarespace.com/static/55afdc11e4b000b229a97849/t/55b13f1de4b044f556a02524/1437679408913/"/>
</a>
<a href="https://www.fossmint.com/stacer-ubuntu-system-optimizer/">
<img width="160px" src="https://www.fossmint.com/wp-content/uploads/2017/02/logo.png"/>
</a>
<a href="http://www.2daygeek.com/stacer-linux-system-optimizer-and-monitoring-tool/">
<img width="160px" src="http://www.2daygeek.com/wp-content/uploads/2015/12/2day-geek-new-logo-final.png"/>
</a>
<a href="http://www.noobslab.com/2017/03/stacer-sytem-optimizer-must-have.html">
<img width="160px" src="http://2.bp.blogspot.com/-Pnf0jwJPpEg/VzJxbWzYgCI/AAAAAAAAHhA/5WJys7XD_1QFHF-CfEp6Bo7VrVaubN3sgCK4B/s1600/nl-logo-1.gif"/>
</a>
</p>
## Installing
### Required for Ubuntu 14
Run `sudo apt-get install systemd -f`
### AppImage
1. Download `stacer-1.0.7-x86_64.AppImage` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases).
2. Make it executable `sudo chmod a+x stacer*.AppImage`
3. Run `./stacer*.AppImage`
### Debian Linux x64
1. Download `stacer_1.0.7_amd64.deb` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases).
2. Run `sudo dpkg --install stacer_1.0.7_amd64.deb` on the downloaded package.
3. Launch Stacer using the installed `stacer` command.
### Debian Linux x86
1. Download `stacer_1.0.7_i386.deb` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases).
2. Run `sudo dpkg --install stacer_1.0.7_i386.deb` on the downloaded package.
3. Launch Stacer using the installed `stacer` command.
### Fedora
1. Download `stacer-1.0.7.rpm` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases).
2. Run `sudo rpm --install stacer-1.0.7.rpm` on the downloaded package.
3. Launch Stacer using the installed `stacer` command.
## Build from source
1. `git clone https://github.com/oguzhaninan/Stacer.git`
2. `cd Stacer`
3. `npm install && npm run build && npm start`
## Uninstalling
- Run `sudo dpkg -r stacer`
## Screenshots
### Dashboard
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-1.png" width="700">
</p>
### System Cleaner
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-2.png" width="700">
</p>
### Startup Apps
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-3.png" width="700">
</p>
### Startup Apps - Add App
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-4.png" width="700">
</p>
### Services
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-5.png" width="700">
</p>
### Processes
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-6.png" width="700">
</p>
### Uninstaller
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-7.png" width="700">
</p>
### Resources
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-8.png" width="700">
</p>
### Resources
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-9.png" width="700">
</p>
### Settings
<p align="center">
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-10.png" width="700">
</p>

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -1,6 +0,0 @@
.amaran-overlay{position:fixed;width:100%;height:100%;top:0;left:0;background:rgba(153,204,51,.9);display:block;z-index:777}.amaran-overlay .amaran-wrapper{z-index:9999}
.amaran.awesome{width:300px;min-height:65px;background:#f3f3f3;color:#222;margin:15px;padding:5px 5px 5px 70px;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:16px;font-weight:600;box-shadow:1px 1px 1px #000}.amaran.awesome .icon{width:50px;height:50px;position:absolute;top:50%;left:10px;background:#000;margin-top:-25px;border-radius:50%;text-align:center;line-height:50px;font-size:22px}.amaran.awesome p{padding:0;margin:0}.amaran.awesome p span{font-weight:300}.amaran.awesome p span.light{font-size:13px;display:block;color:#777}.amaran.awesome.ok p.bold{color:#178B13}.amaran.awesome.ok .icon{background-color:#178B13;color:#fff}.amaran.awesome.error p.bold{color:#D82222}.amaran.awesome.error .icon{background-color:#D82222;color:#fff}.amaran.awesome.warning p.bold{color:#9F6000}.amaran.awesome.warning .icon{background-color:#9F6000;color:#fff}.amaran.awesome.yellow p.bold{color:#CFA846}.amaran.awesome.yellow .icon{background-color:#CFA846;color:#fff}.amaran.awesome.blue p.bold{color:#2980b9}.amaran.awesome.blue .icon{background-color:#2980b9;color:#fff}.amaran.awesome.green p.bold{color:#e12b28}.amaran.awesome.green .icon{background-color:#e12b28;color:#fff}.amaran.awesome.purple p.bold{color:#5B54AA}.amaran.awesome.purple .icon{background-color:#5B54AA;color:#fff}
.amaran.colorful{width:300px;min-height:45px;overflow:hidden;background-color:transparent;z-index:1}.amaran.colorful .colorful-inner{width:100%;min-height:45px;display:block;position:relative;background-color:#484860;padding:15px 25px 15px 15px;color:#fff;font-size:14px;border-bottom:1px solid rgba(0,0,0,.2);border-radius:4px}.amaran.colorful .amaran-close{color:#fff;z-index:2;top:8px;right:8px;text-align:center;line-height:23px}.amaran-wrapper.center .amaran.colorful{margin:0 auto}
.amaran.default{width:300px;min-height:45px;background:#1B1E24;background:-webkit-linear-gradient(left,#111213,#111213 15%,#1b1e24 15%,#1b1e24);background:linear-gradient(to right,#111213,#111213 15%,#1b1e24 15%,#1b1e24);color:#fff;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:13px;font-weight:300;margin:5px;overflow:hidden;border-bottom:1px solid #111213;border-radius:6px}.amaran.default .default-spinner{width:45px;min-height:45px;display:block;float:left;position:relative}.amaran.default .default-spinner span{width:18px;height:18px;background:#27ae60;display:block;border-radius:50%;position:absolute;top:50%;left:50%;margin-left:-11px;margin-top:-9px}.amaran.default .default-message{padding:5px; width:240px; float:left}.amaran.default .default-message span{padding:3px;}.amaran.default .default-message:after{clear:both}
@charset "UTF-8";.amaran-close,.amaran-sticky{height:20px;top:2px;cursor:pointer}.amaran-wrapper *{box-sizing:border-box}.amaran-wrapper{position:fixed;z-index:9999}.amaran-wrapper.top{top:0;bottom:auto}.amaran-wrapper.bottom{bottom:0;top:auto}.amaran-wrapper.left{left:0}.amaran-wrapper.right{right:0;left:auto}.amaran-wrapper.center{width:50%;height:50%;margin:auto;position:fixed;top:0;left:0;bottom:0;right:0}.amaran{width:200px;background:rgba(0,0,0,.7);padding:3px;color:#fff;border-radius:4px;display:none;font-size:13px;cursor:pointer;position:relative;text-align:left;min-height:50px;margin:10px}.amaran-close,.amaran-sticky{width:20px;display:block;position:absolute}.amaran-close{right:2px}.amaran-close:before{content:"x";color:#fff;font-weight:700;font-family:Arial,sans-serif;font-size:18px}.amaran-sticky{right:20px}.amaran-sticky:before{content:"●";color:#fff;font-weight:700;font-family:Arial,sans-serif;font-size:18px}.amaran-sticky.sticky:before{color:#e12b28}
.amaran.user{width:300px;min-height:100px;background:#f3f3f3;color:#222;margin:15px;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:13px;font-weight:300;box-shadow:1px 1px 1px #000;border-radius:0;padding:0}.amaran.user .icon{width:100px;height:100px;position:relative;background:#000;float:left}.amaran.user img{max-width:100%}.amaran.user .info{padding-left:110px;padding-top:10px}.amaran.user b{display:block;font-size:16px}.amaran.user.blue{background:#2773ed;color:#fff}.amaran.user.yellow{background:#f4b300;color:#fff}.amaran.user.green{background:#78ba00;color:#fff}

View File

@@ -1,76 +0,0 @@
@charset "UTF-8";
@font-face {
font-family: "stacer-fonts";
src:url("../font/stacer-fonts.eot");
src:url("../font/stacer-fonts.eot?#iefix") format("embedded-opentype"),
url("../font/stacer-fonts.woff") format("woff"),
url("../font/stacer-fonts.ttf") format("truetype"),
url("../font/stacer-fonts.svg#stacer-fonts") format("svg");
font-weight: normal;
font-style: normal;
}
[data-icon]:before {
font-family: "stacer-fonts" !important;
content: attr(data-icon);
font-style: normal !important;
font-weight: normal !important;
font-variant: normal !important;
text-transform: none !important;
speak: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
[class^="icon-"]:before,
[class*=" icon-"]:before {
font-family: "stacer-fonts" !important;
font-style: normal !important;
font-weight: normal !important;
font-variant: normal !important;
text-transform: none !important;
speak: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-service:before {
content: "\69";
}
.icon-startup:before {
content: "\67";
}
.icon-dash:before {
content: "\64";
}
.icon-stats:before {
content: "\6a";
}
.icon-terminal:before {
content: "\6c";
}
.icon-cleaner:before {
content: "\6e";
}
.icon-uninstaller:before {
content: "\6b";
}
.icon-collapse:before {
content: "\62";
}
.icon-expand:before {
content: "\63";
}
.icon-settings:before {
content: "\61";
}
.icon-sort-asc:before {
content: "\65";
}
.icon-sort-desc:before {
content: "\66";
}

View File

@@ -1,424 +0,0 @@
/*LOADING*/
#loading {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #1b1e24;
z-index: 999999;
}
.loader_text {
display: block;
width: 100%;
text-align: center;
font-size: 21px;
color: #2FAC9B;
margin-top: 230px;
}
#loader {
text-align: center;
margin-top: 30px;
}
#loader span {
display: inline-block;
height: 15px;
width: 15px;
background: #2FAC9B;
border-radius: 0px;
}
#loader span:nth-child(1) {
-webkit-animation: temp 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(2) {
-webkit-animation: temp 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(3) {
-webkit-animation: temp 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(4) {
-webkit-animation: temp 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(5) {
-webkit-animation: temp 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(6) {
-webkit-animation: temp 1s 0.3s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.3s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(7) {
-webkit-animation: temp 1s 0.35s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.35s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(8) {
-webkit-animation: temp 1s 0.4s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.4s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(9) {
-webkit-animation: temp 1s 0.45s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.45s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(10) {
-webkit-animation: temp 1s 0.5s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.5s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(11) {
-webkit-animation: temp 1s 0.55s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.55s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(12) {
-webkit-animation: temp 1s 0.6s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.6s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(13) {
-webkit-animation: temp 1s 0.65s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.65s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(14) {
-webkit-animation: temp 1s 0.7s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.7s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(15) {
-webkit-animation: temp 1s 0.75s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.75s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(16) {
-webkit-animation: temp 1s 0.8s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.8s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(17) {
-webkit-animation: temp 1s 0.85s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.85s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(18) {
-webkit-animation: temp 1s 0.9s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.9s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(19) {
-webkit-animation: temp 1s 0.95s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 0.95s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
#loader span:nth-child(20) {
-webkit-animation: temp 1s 1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
animation: temp 1s 1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
width: 7.5px;
height: 7.5px;
margin: 0 2px;
}
@-webkit-keyframes scale {
0% {
-webkit-transform: scale(0);
transform: scale(0);
}
25% {
-webkit-transform: scale(0.9, 0.9);
transform: scale(0.9, 0.9);
background: #93e1d7;
}
50% {
-webkit-transform: scale(1, 1);
transform: scale(1, 1);
margin: 0 3px;
background: #2FAC9B;
}
100% {
-webkit-transform: scale(0);
transform: scale(0);
}
}
@keyframes scale {
0% {
-webkit-transform: scale(0);
transform: scale(0);
}
25% {
-webkit-transform: scale(0.9, 0.9);
transform: scale(0.9, 0.9);
background: #93e1d7;
}
50% {
-webkit-transform: scale(1, 1);
transform: scale(1, 1);
margin: 0 3px;
background: #2FAC9B;
}
100% {
-webkit-transform: scale(0);
transform: scale(0);
}
}
@-webkit-keyframes rotateY {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
50% {
-webkit-transform: rotateY(90deg);
transform: rotateY(90deg);
background: #93e1d7;
}
100% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
}
@keyframes rotateY {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
50% {
-webkit-transform: rotateY(90deg);
transform: rotateY(90deg);
background: #93e1d7;
}
100% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
}
@-webkit-keyframes rotateX {
0% {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}
50% {
-webkit-transform: rotateX(90deg) scale(0.5, 0.5);
transform: rotateX(90deg) scale(0.5, 0.5);
background: #93e1d7;
}
100% {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}
}
@keyframes rotateX {
0% {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}
50% {
-webkit-transform: rotateX(90deg) scale(0.5, 0.5);
transform: rotateX(90deg) scale(0.5, 0.5);
background: #93e1d7;
}
100% {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}
}
@-webkit-keyframes push {
0% {
-webkit-transform: translateX(0px) scale(0.9, 0.6);
transform: translateX(0px) scale(0.9, 0.6);
}
50% {
-webkit-transform: translateY(-20px) scale(0.7, 1.1);
transform: translateY(-20px) scale(0.7, 1.1);
background: #6bd6c8;
}
100% {
-webkit-transform: translateX(0px) scale(0.9, 0.6);
transform: translateX(0px) scale(0.9, 0.6);
}
}
@keyframes push {
0% {
-webkit-transform: translateX(0px) scale(0.9, 0.6);
transform: translateX(0px) scale(0.9, 0.6);
}
50% {
-webkit-transform: translateY(-20px) scale(0.7, 1.1);
transform: translateY(-20px) scale(0.7, 1.1);
background: #6bd6c8;
}
100% {
-webkit-transform: translateX(0px) scale(0.9, 0.6);
transform: translateX(0px) scale(0.9, 0.6);
}
}
@-webkit-keyframes rotateZ {
0% {
-webkit-transform: rotateZ(-20deg);
transform: rotateZ(-20deg);
}
50% {
-webkit-transform: rotateZ(20deg) scaleY(1.2);
transform: rotateZ(20deg) scaleY(1.2);
background: #6bd6c8;
}
100% {
-webkit-transform: rotateZ(-20deg);
transform: rotateZ(-20deg);
}
}
@keyframes rotateZ {
0% {
-webkit-transform: rotateZ(-20deg);
transform: rotateZ(-20deg);
}
50% {
-webkit-transform: rotateZ(20deg) scaleY(1.2);
transform: rotateZ(20deg) scaleY(1.2);
background: #6bd6c8;
}
100% {
-webkit-transform: rotateZ(-20deg);
transform: rotateZ(-20deg);
}
}
@-webkit-keyframes cuve {
0% {
-webkit-transform: rotateY(-90deg) perspective(50px);
transform: rotateY(-90deg) perspective(50px);
background: #195c53;
}
50% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
background: #6bd6c8;
}
100% {
-webkit-transform: rotateY(90deg) perspective(50px);
transform: rotateY(90deg) perspective(50px);
-webkit-transform-origin: 100% 50%;
transform-origin: 100% 50%;
background: #195c53;
}
}
@keyframes cuve {
0% {
-webkit-transform: rotateY(-90deg) perspective(50px);
transform: rotateY(-90deg) perspective(50px);
background: #195c53;
}
50% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
background: #6bd6c8;
}
100% {
-webkit-transform: rotateY(90deg) perspective(50px);
transform: rotateY(90deg) perspective(50px);
-webkit-transform-origin: 100% 50%;
transform-origin: 100% 50%;
background: #195c53;
}
}
@-webkit-keyframes temp {
50% {
-webkit-transform: scale(1, 5);
transform: scale(1, 5);
background: #195c53;
}
}
@keyframes temp {
50% {
-webkit-transform: scale(1, 5);
transform: scale(1, 5);
background: #195c53;
}
}

View File

@@ -1,926 +0,0 @@
body * {
outline: 0;
font-family: 'Ubuntu', sans-serif;
}
@font-face {
font-family: 'Ubuntu', sans-serif;
src: url(../font/Ubuntu-Regular.ttf) format("truetype");
}
body {
overflow: hidden;
float: left;
padding: 0;
margin: 0;
width: 100%;
-webkit-user-select: none;
}
#main {
width: calc(100% - 55px);
padding: 0px;
}
button {
cursor: pointer;
}
[v-cloak] {
display: none;
}
.fl {
float: left;
}
.fr {
float: right;
}
.w100 {
width: 100%;
}
.content {
float: left;
width: calc(100% - 10px);
height: 1000px;
padding: 5px;
}
.content h1 {
width: calc(100% - 20px);
float: left;
display: block;
margin: 0 0 10px 10px;
padding: 5px 0 10px 0;
text-align: center;
font-weight: 400;
font-size: 16px;
}
/*---------SIDEBAR---------*/
.sidebar-nav {
width: 55px;
height: 620px;
position: fixed;
top: 0px;
text-align: center;
left: 0;
z-index: 99;
}
.sidebar-nav ul {
padding: 0;
margin: 0;
list-style: none;
}
.sidebar-nav ul li {
float: left;
display: inline-block;
padding: 15px 13px;
text-align: left;
cursor: pointer;
}
.sidebar-nav ul li label {
padding: 5px 0px 0 45px;
display: none;
white-space: nowrap;
cursor: pointer;
}
.sidebar-nav ul li:hover>label {
display: block;
}
.sidebar-nav ul li img {
width: 43px;
}
.sidebar-nav ul li i {
font-size: 29px;
height: 28px;
display: block;
float: left;
}
/*---------SIDEBAR---------*/
/*---------DASHBOARD---------*/
.cont,
.line-cont {
width: 200px;
border-radius: 4px;
font-size: 16px;
text-align: center;
margin: 15px;
padding: 10px 30px 20px 30px;
font-weight: 500;
}
.cont h3,
.line-cont h3,
.system-info h3 {
display: block;
letter-spacing: 1px;
padding: 0;
margin: 0px 0px 12px 0px;
font-size: 16px;
font-weight: 500;
}
.line-cont span {
display: block;
text-align: right;
}
.line-cont h3 {
text-align: left;
}
.line-cont {
float: right;
width: 350px;
padding: 20px 30px;
}
.system-info {
width: 330px;
float: left;
display: block;
font-size: 16px;
margin: 20px;
padding: 10px 25px 15px 25px;
font-weight: 500;
}
.system-info ul {
padding: 0;
list-style: none;
font-weight: normal;
line-height: 30px;
}
.line-cont div {
margin: 0px 0px 15px 0px;
}
.circle-bar {
background-repeat: no-repeat;
background-position: center 65px;
}
/*---------DASHBOARD---------*/
/*--------SWITCH-----------*/
.switch {
display: none;
}
.switch+label,
.switch+label::after {
display: inline-block;
position: relative;
width: 44px;
height: 22px;
border-radius: 9999px;
transition: 300ms;
cursor: pointer;
}
.switch+label::after {
content: "";
position: absolute;
left: 3px;
width: 17px;
height: 17px;
margin-top: 2px;
box-shadow: 0 5px 5px -1px rgba(0, 0, 0, 0.2), 0 0 0 2px #EF4836;
}
.switch:checked+label::after {
left: 22px;
box-shadow: 0 5px 5px -1px rgba(0, 0, 0, 0.2), 0 0 0 2px #4BD865;
}
.switch+label:hover:active::after {
width: 23px;
}
.switch:checked+label:hover:active::after {
left: 17px;
}
/*--------SWITCH-----------*/
/*----------SCROLL--------*/
.scroll {
overflow-y: auto;
overflow-x: hidden;
}
.scroll::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 10px;
}
.scroll::-webkit-scrollbar {
width: 10px;
}
.scroll::-webkit-scrollbar-thumb {
border-radius: 10px;
}
/*----------SCROLL--------*/
/*---------ITEM LIST---------*/
.item-list {
width: 700px;
height: 520px;
margin: 15px auto 20px auto;
}
.item-list ul {
list-style: none;
padding: 0;
margin: 0;
height: calc(100% - 40px);
width: 100%;
}
.item-list ul li {
position: relative;
float: left;
display: block;
cursor: pointer;
font-size: 15px;
margin: 6px 3px;
width: calc(100% - 70px);
border-radius: 4px;
padding: 10px 15px 10px 50px;
}
.item-list h3,
.processes h3 {
margin: 0px;
float: left;
display: block;
height: 20px;
padding: 10px 0px 10px 15px;
font-size: 15px;
font-weight: 400;
}
.item-list ul li span {
display: block;
float: left;
width: calc(100% - 120px);
overflow: hidden;
text-overflow: ellipsis;
margin-top: 2px;
}
.item-list input[type=text],
.processes input[type=text] {
border-radius: 50px;
font-size: 13px;
float: right;
padding: 5px 10px;
margin: 6px 10px 6px 0px;
}
/*---------ITEM LIST---------*/
/*---------STARTUP APPS---------*/
.startup-apps-list {
width: 600px;
height: 460px;
margin-top: 45px;
}
.startup-apps-list ul li {
background-image: url(../img/app.png);
background-repeat: no-repeat;
background-position: 13px 9px;
}
.startup-apps-list ul li:hover .remove-startup-app {
display: block;
}
.remove-startup-app {
width: 24px;
height: 24px;
margin: -2px 10px 0px 0px;
background: transparent url(../img/trash.png) no-repeat;
display: block;
float: right;
border: 0;
}
.edit-startup-app {
width: 24px;
height: 24px;
margin: -2px 10px 0px 0px;
background: transparent url(../img/edit.png) no-repeat;
display: block;
float: right;
border: 0;
}
.add-startup-app {
border: 0;
padding: 8px 15px;
float: right;
margin: 10px 140px 0px 0px;
border-radius: 4px;
}
/*---------STARTUP APPS---------*/
/*---------SYSTEM SERVICES---------*/
.services-list {
margin-top: 45px;
}
.services-list ul {
float: left;
}
.services-list ul li {
background-image: url(../img/service.png);
background-repeat: no-repeat;
background-position: 13px 11px;
line-height: 20px;
}
/*---------SYSTEM SERVICES---------*/
/*---------UNINSTALLER---------*/
.uninstaller-list {
height: 490px;
margin-top: 45px;
}
.uninstaller-list ul {
float: left;
}
.uninstaller-list ul li {
background-image: url(../img/package.png);
background-repeat: no-repeat;
background-position: 13px 9px;
line-height: 20px;
}
.uninstaller-list .spin-loader {
margin: 20px 0 0 100px;
}
.uninstaller-list label {
float: right;
margin: 1px 5px 0px 0px;
border-radius: 100%;
position: relative;
display: block;
width: 16px;
height: 16px;
border-radius: 100px;
cursor: pointer;
}
#uninstall-selected {
padding: 7px 15px;
cursor: pointer;
font-size: 15px;
margin: 15px 268px;
background-color: transparent;
border-radius: 4px;
}
#uninstall-selected:disabled {
cursor: not-allowed;
}
/*---------UNINSTALLER---------*/
/*---------ITEM TABLE---------*/
.item-table {
float: right;
margin: 10px 10px 0px 0px;
width: 630px;
height: 480px;
}
.item-table ul {
list-style: none;
margin: 0;
padding: 0;
}
.item-table ul li {
width: 100%;
display: block;
float: left;
padding: 2px 0px;
margin: 0;
}
input[type=checkbox] {
display: none;
}
.cleaner-side i,
.item-table i {
border-radius: 50%;
display: block;
height: 12px;
position: absolute;
top: 9px;
width: 12px;
z-index: 1;
}
.cleaner-side input[type=checkbox]:checked+i::after,
.item-table input[type=checkbox]:checked+i::after {
border-radius: 50%;
content: '';
display: block;
height: 6px;
left: 3px;
position: absolute;
top: 3px;
width: 6px;
z-index: 2;
}
.item-table span {
display: block;
float: left;
width: 550px;
overflow: hidden;
margin-left: 25px;
text-overflow: ellipsis;
font-size: 13px;
}
.item-table label {
cursor: pointer;
display: block;
float: left;
line-height: 30px;
padding: 0 15px;
position: relative;
}
.item-table h3 {
display: block;
float: left;
margin: 0;
font-weight: 500;
width: 100%;
}
.item-table h3 span {
font-size: 14px;
}
/*---------ITEM TABLE---------*/
/*---------CLEANER SIDEBAR---------*/
.cleaner-side {
margin: 10px 0 0 10px;
width: 200px;
float: left;
position: relative;
}
.cleaner-side ul {
float: left;
list-style: none;
margin: 0;
padding: 0;
}
.cleaner-side ul li {
padding: 0;
margin: 0 0 8px 0;
}
.cleaner-side ul li label {
display: block;
padding: 10px 0px 10px 10px;
width: 195px;
font-size: 14px;
cursor: pointer;
position: relative;
}
.cleaner-side i {
margin: 4px 0 0 0;
}
.cleaner-side span {
margin-left: 22px;
width: 160px;
display: block;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
/*---------CLEANER SIDEBAR---------*/
/*---------STATISTICS---------*/
.resources {
padding: 0px 20px;
}
.resources h4 {
display: block;
float: left;
padding: 10px;
font-weight: 400;
margin: 0;
}
.resources h4 i {
margin: 1px 0 0 10px;
cursor: pointer;
display: block;
float: right;
font-size: 16px;
}
#cpus-chart,
#memory-chart,
#network-chart {
float: left;
height: 125px;
width: calc(100% - 20px);
padding: 10px;
border-radius: 4px;
}
/*---------STATISTICS---------*/
.empty-list {
font-size: 22px;
text-align: center;
padding: 180px 0px;
width: 100%;
float: left;
margin: 30px auto;
display: block;
background: url(../img/not-found.png) no-repeat center 30px;
}
#clean-btn,
#system-scan-btn {
clear: right;
float: right;
margin: 10px 10px 0 0;
border-radius: 5px;
padding: 8px 20px;
cursor: pointer;
position: relative;
background-color: transparent;
}
#system-scan-btn {
float: left;
}
.slide-fade-enter-active {
transition: all .2s ease;
}
.slide-fade-leave-active {
transition: all .2s ease;
}
.slide-fade-enter,
.slide-fade-leave-to {
opacity: 0;
}
.update-check {
position: fixed;
bottom: 0;
left: 0;
right: 0;
text-align: left;
padding: 7px 0;
z-index: 99999;
}
.update-check span {
float: left;
display: block;
padding: 5px 20px;
margin: 0;
}
.update-check button {
border: 0;
cursor: pointer;
font-size: 15px;
float: right;
display: block;
border-radius: 4px;
padding: 6px 15px;
margin-right: 8px;
}
/*prompt style*/
.promptDialog {
background-color: rgba(0, 0, 0, .4);
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
z-index: 999;
position: fixed;
}
.promptDialog .dialog {
width: 350px;
margin: 0 auto;
position: relative;
top: 40%;
transform: translateY(-50%);
box-shadow: 0px 0px 20px #10161b;
}
.promptDialog .dialog div:first-child {
border-radius: 4px;
background-color: #202b33;
padding: 10px;
text-align: center;
}
.dialog span {
color: #ddd;
display: block;
padding: 5px 10px;
}
.dialog input,
.dialog select {
color: #ddd;
border-radius: 4px;
padding: 9px 15px;
width: 280px;
font-size: 15px;
border: 0;
background-color: #293945;
margin: 8px 0px;
}
.dialog button {
padding: 7px 15px;
border: 0;
color: #ddd;
border: 1px solid #293945;
cursor: pointer;
font-size: 15px;
margin: 5px 10px;
background-color: transparent;
border-radius: 4px;
}
.dialog button:hover {
background-color: #293945;
}
/*----SETTINGS-----*/
.settings div {
float: left;
margin: 10px 15px 0 10px;
}
.settings div label {
float: left;
font-size: 15px;
padding: 0 0 5px 0;
}
.settings div select {
float: left;
border: 0px;
border-radius: 3px;
clear: left;
margin: 8px 0 0 0;
padding: 5px 10px;
width: 150px;
}
.settings-btn {
position: fixed;
top: 7px;
padding: 0;
right: 0;
width: 30px;
height: 30px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border: 0;
}
/*------Processes--------*/
.processes {
float: left;
position: relative;
margin: 0 10px;
padding: 0;
width: calc(100% - 20px);
}
.processes button {
display: block;
float: right;
margin: 10px 0;
padding: 6px 15px;
border-radius: 3px;
}
.processes button:disabled {
cursor: not-allowed;
}
.processes .tbody {
height: 440px;
overflow-y: auto;
overflow-x: hidden;
}
.refreshCont {
float: left;
margin: 12px 0 0 0;
}
.refreshCont label {
display: block;
font-size: 15px;
padding: 3px 0 0 0;
float: left;
}
.refreshProcesses {
-webkit-appearance: none;
width: 80px;
height: 2px;
margin: 0 0 0 10px;
cursor: pointer;
}
.refreshProcesses::-webkit-slider-thumb {
-webkit-appearance: none;
width: 10px;
height: 10px;
border-radius: 100%;
position: relative;
z-index: 99;
}
/*-----Datatable-----*/
.datatable {
width: 100%;
margin: 0;
padding: 0;
text-align: left;
box-sizing: border-box;
font-size: 15px;
border-top-right-radius: 5px;
border-top-left-radius: 5px;
table-layout: fixed;
border-spacing: 1px;
}
.datatable tr:hover {
cursor: pointer;
}
.datatable th i {
font-size: 13px;
display: block;
float: right;
margin-top: 2px;
}
.datatable td,
.datatable th {
padding: 8px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
/*----Spinner Loader------*/
.spin-loader {
position: relative;
width: 45px;
height: 10px;
}
.spin-loader div {
width: 10px;
height: 10px;
border-radius: 100%;
background: #2285c3;
position: absolute;
animation-duration: 0.5s;
animation-timing-function: ease;
animation-iteration-count: infinite;
}
.dot1,
.dot2 {
left: 0;
}
.dot3 {
left: 1em;
}
.dot4 {
left: 2em;
}
@keyframes reveal {
from {
transform: scale(0.001);
}
to {
transform: scale(1);
}
}
@keyframes slide {
to {
transform: translateX(1em)
}
}
.dot1 {
animation-name: reveal;
}
.dot2,
.dot3 {
animation-name: slide;
}
.dot4 {
animation-name: reveal;
animation-direction: reverse;
}

View File

@@ -1,314 +0,0 @@
/**
AUTHOR <email@address>
*/
.dark {
background-color: #202b33;
}
.dark .content h1 {
color: #ccc;
border-bottom: 1px solid #ccc;
}
/*----SIDEBAR-NAV----*/
.dark .sidebar-nav {
background-color: #293945;
}
.dark .sidebar-nav ul li label {
color: #2285c3;
}
.dark .sidebar-nav ul li:not(.nav-active) i {
color: #fff;
}
.dark .sidebar-nav ul li:hover {
background-color: #1b242b;
}
.dark .nav-active {
background-color: #202b33;
}
.dark .sidebar-nav ul li:hover>i,
.dark .nav-active i {
color: #2285c3;
}
/*-----DASHBOARD-----*/
/*chart-trail-color*/
.dark svg path:first-child {
stroke: #202b33;
}
.dark .cont,
.dark .line-cont {
background-color: #293945;
color: #eee;
}
.dark .cont h3,
.dark .line-cont h3,
.dark .system-info h3 {
color: #eee;
}
.dark .system-info ul li {
color: #748390;
}
/*----SWITCH-----*/
.dark .switch+label,
.dark .switch:not(:checked)+label:hover:active {
background-color: #EF4836;
}
.dark .switch+label::after {
background-color: #fff;
}
.dark .switch:checked+label {
box-shadow: inset 0 0 0 13px #4BD865;
}
.dark .scroll::-webkit-scrollbar-thumb {
background-color: #314452;
}
/*----ITEM LIST-----*/
.dark .item-list ul li {
background-color: #293945;
}
.dark .item-list ul li:hover {
background-color: #314452;
}
.dark .item-list h3,
.dark .item-list ul li,
.dark .processes h3 {
color: #aeb5bf;
}
.dark .item-list input[type=text],
.dark .processes input[type=text] {
background-color: #202b33;
border: 1px solid #314452;
color: #aeb5bf;
}
/*----ITEM TABLE----*/
.dark .item-table {
border: 1px solid #314452;
}
.dark .item-table ul li {
border-bottom: 1px solid #314452;
}
.dark .item-table ul li:hover {
background-color: #293945;
}
.dark .cleaner-side i,
.dark .item-table i {
background-color: #748390;
}
.dark .item-table input[type=checkbox]:checked+i::after,
.dark .cleaner-side input[type=checkbox]:checked+i::after {
background-color: #293945;
}
.dark .item-table span {
color: #aeb5bf;
}
.dark .item-table h3 {
background-color: #293945;
color: #aeb5bf;
}
/*----CLEANER SIDE-----*/
.dark .cleaner-side ul li label {
color: #aeb5bf;
}
.dark .cleaner-side ul li {
border: 1px solid #314452;
}
.dark .cleaner-side ul li label:hover {
background-color: #293945;
color: #2285c3;
}
.dark #clean-btn,
.dark #system-scan-btn {
color: #eee;
border: 1px solid #293945;
}
.dark #clean-btn:hover,
.dark #system-scan-btn:hover {
background-color: #293945;
}
/*----STARTUP APPS----*/
.dark .add-startup-app {
background-color: #2196f3;
color: #eee;
}
.dark .add-startup-app:hover {
background-color: #2285c3;
}
/*----RESURCES----*/
.dark .resources h4 {
color: #aeb5bf;
}
.dark .resources h4 i {
color: #fff;
}
.dark #cpus-chart,
.dark #memory-chart,
.dark #network-chart {
background-color: #293945;
}
/*----UNINSTALLER----*/
.dark .uninstaller-list label {
border: 2px solid #fff;
background-color: #314452;
}
.dark .uninstaller-list input[type=checkbox]:checked+label {
background-color: #2285c3;
}
.dark #uninstall-selected {
color: #aeb5bf;
border: 1px solid #293945;
}
.dark #uninstall-selected:disabled {
color: #293945;
}
.dark #uninstall-selected:disabled:hover {
color: #202b33;
}
.dark #uninstall-selected:hover {
background-color: #293945;
}
/*-----UPDATE-BAR-----*/
.dark .update-check {
background-color: #16a085;
}
.dark .update-check span {
color: #202b33;
}
.dark .update-check button {
color: #fff;
background-color: #202b33;
}
.dark .update-check button:hover {
background-color: #293945;
}
/*----SETTINGS-----*/
.dark .settings div label {
color: #748390;
}
.dark .settings div select {
background-color: #293945;
color: #fff;
}
.dark .empty-list {
color: #748390;
}
/*----PROCESS-----*/
.dark .processes button {
background-color: #293945;
border: 1px solid #314452;
color: #a9b1bb;
}
.dark .processes button:hover {
background-color: #314452;
}
.dark .refreshCont label {
color: #aab1ba;
}
.dark .refreshProcesses {
background: #293945;
}
.dark .refreshProcesses::-webkit-slider-thumb {
border: 7px solid #2285c3;
}
/*-----DATATABLE-----*/
.dark .datatable {
background-color: #314452;
}
.dark .datatable tr:not(.selectedRow) {
background-color: #293945;
color: #ddd;
}
.dark .datatable tr:hover {
background-color: #314452;
}
.dark .datatable th {
color: #2285c3;
}
.dark .selectedRow {
background-color: #314452;
color: #a9b1bb;
}

View File

@@ -1,326 +0,0 @@
/**
AUTHOR <email@address>
*/
.light {
background-color: #efefef;
}
.light .content h1 {
color: #6d7278;
border-bottom: 1px solid #bdc4ca;
}
/*----SIDEBAR-NAV----*/
.light .sidebar-nav {
background-color: #fff;
box-shadow: 0px 0px 20px 0px #ddd;
}
.light .sidebar-nav ul li label {
color: #fff;
}
.light .sidebar-nav ul li:not(.nav-active) i {
color: #6d7278;
}
.light .sidebar-nav ul li:hover,
.light .nav-active {
background-color: #2285c3;
}
.light .sidebar-nav ul li:hover>i,
.light li.nav-active>i {
color: #fff;
}
/*-----DASHBOARD-----*/
/*chart-trail-color*/
.light svg path:first-child {
stroke: #ddd;
}
.light .cont,
.light .line-cont {
background-color: #fff;
box-shadow: 0px 0px 20px 0px #ddd;
color: #6d7278;
}
.light .cont h3,
.light .line-cont h3,
.light .system-info h3 {
color: #6d7278;
}
.light .system-info ul li {
color: #6d7278;
}
/*----SWITCH-----*/
.light .switch+label,
.light .switch:not(:checked)+label:hover:active {
background-color: #EF4836;
}
.light .switch+label::after {
background-color: #fff;
}
.light .switch:checked+label {
box-shadow: inset 0 0 0 13px #4BD865;
}
.light .scroll::-webkit-scrollbar-thumb {
background-color: #748390;
}
/*----ITEM LIST-----*/
.light .item-list ul li {
background-color: #fff;
box-shadow: 0px 0px 10px 0px #ddd;
}
.light .item-list ul li:hover {
background-color: #748390;
color: #fff;
}
.light .item-list h3,
.light .item-list ul li,
.light .processes h3 {
color: #6d7278;
}
.light .item-list input[type=text],
.light .processes input[type=text] {
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0px 0px 5px 0px #ddd;
color: #aeb5bf;
}
/*----ITEM TABLE----*/
.light .item-table {
background-color: #fff;
box-shadow: 0px 0px 20px 0px #ddd;
border: 0;
}
.light .item-table ul li {
border-bottom: 1px solid #ddd;
}
.light .item-table ul li:hover {
background-color: #bdc4ca;
}
.light .cleaner-side i,
.light .item-table i {
background-color: #748390;
}
.light .item-table input[type=checkbox]:checked+i::after,
.light .cleaner-side input[type=checkbox]:checked+i::after {
background-color: #293945;
}
.light .item-table span {
color: #748390;
}
.light .item-table h3 {
background-color: #bdc4ca;
color: #fff;
}
/*----CLEANER SIDE-----*/
.light .cleaner-side ul li label {
color: #aeb5bf;
}
.light .cleaner-side ul li {
background-color: #fff;
box-shadow: 0px 0px 20px 0px #ddd;
border: 0;
}
.light .cleaner-side ul li label:hover {
background-color: #bdc4ca;
color: #2285c3;
}
.light #clean-btn,
.light #system-scan-btn {
color: #fff;
background-color: #748390;
box-shadow: 0px 0px 20px 0px #ddd;
border: 0;
}
.light #clean-btn:hover,
.light #system-scan-btn:hover {
background-color: #bdc4ca;
}
/*----STARTUP APPS----*/
.light .add-startup-app {
background-color: #2196f3;
color: #eee;
}
.light .add-startup-app:hover {
background-color: #2285c3;
}
/*----RESURCES----*/
.light .resources h4 {
color: #6d7278;
}
.light .resources h4 i {
color: #6d7278;
}
.light #cpus-chart,
.light #memory-chart,
.light #network-chart {
background-color: #fff;
box-shadow: 0px 0px 20px 0px #ddd;
}
/*----UNINSTALLER----*/
.light .uninstaller-list label {
border: 2px solid #aeb5bf;
background-color: #eee;
}
.light .uninstaller-list input[type=checkbox]:checked+label {
background-color: #2285c3;
}
.light #uninstall-selected {
color: #202b33;
border: 1px solid #748390;
}
.light #uninstall-selected:disabled {
color: #748390;
}
.dark #uninstall-selected:disabled:hover {
color: #202b33;
}
.light #uninstall-selected:hover {
background-color: #748390;
color: #fff;
}
/*-----UPDATE-BAR-----*/
.light .update-check {
background-color: #16a085;
}
.light .update-check span {
color: #202b33;
}
.light .update-check button {
color: #fff;
background-color: #202b33;
}
.light .update-check button:hover {
background-color: #293945;
}
/*----SETTINGS-----*/
.light .settings div label {
color: #6d7278;
}
.light .settings div select {
background-color: #748390;
color: #fff;
}
.light .empty-list {
color: #748390;
}
/*----PROCESS-----*/
.light .processes button {
background-color: #748390;
border: 0;
color: #fff;
}
.light .processes button:hover {
background-color: #bdc4ca;
}
.light .refreshCont label {
color: #6d7278;
}
.light .refreshProcesses {
background: #6d7278;
}
.light .refreshProcesses::-webkit-slider-thumb {
border: 7px solid #2285c3;
}
/*-----DATATABLE-----*/
.light .datatable {
box-shadow: 0px 0px 20px 0px #ddd;
background-color: #bdc4ca;
}
.light .datatable tr:not(.selectedRow) {
background-color: #fff;
color: #6d7278;
}
.light .datatable tr:hover {
background-color: #aeb5bf;
}
.light .datatable th {
color: #2285c3;
}
.light .selectedRow {
background-color: #aeb5bf;
color: #6d7278;
}

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by Fontastic.me</metadata>
<defs>
<font id="stacer-fonts" horiz-adv-x="512">
<font-face font-family="stacer-fonts" units-per-em="512" ascent="480" descent="-32"/>
<missing-glyph horiz-adv-x="512" />
<glyph glyph-name="service" unicode="&#105;" d="M238 256c0 20-7 37-22 52-14 14-31 21-51 21-21 0-38-7-52-21-14-15-22-32-22-52 0-20 8-37 22-52 14-14 31-21 52-21 20 0 37 7 51 21 15 15 22 32 22 52z m219-146c0 10-3 18-11 25-7 8-16 11-25 11-10 0-19-3-26-11-7-7-11-15-11-25 0-10 4-19 11-26 7-7 15-11 26-11 10 0 18 4 25 11 8 7 11 16 11 26z m0 292c0 10-3 19-11 26-7 7-16 11-25 11-10 0-19-4-26-11-7-7-11-16-11-26 0-10 4-18 11-26 7-7 15-10 26-10 10 0 18 3 25 10 8 8 11 16 11 26z m-110-120l0-53c0-2 0-4-2-5-1-2-2-3-4-3l-44-7c-3-7-6-14-10-22 7-9 15-20 26-33 1-2 2-4 2-6 0-2-1-4-2-5-4-6-12-14-23-26-12-11-19-17-23-17-2 0-4 1-6 2l-33 26c-7-3-14-6-22-9-2-20-4-35-6-44-2-5-4-7-9-7l-53 0c-2 0-4 1-6 2-1 2-2 3-3 5l-6 44c-7 2-14 5-22 9l-33-26c-2-1-4-2-6-2-2 0-4 1-6 3-27 25-41 40-41 45 0 2 1 4 2 6 2 3 6 8 12 15 5 7 10 13 13 17-4 9-8 17-10 24l-43 7c-2 0-4 1-5 2-2 2-2 4-2 6l0 53c0 2 0 4 2 5 1 2 3 3 4 3l45 7c2 7 5 14 9 22-7 9-15 20-26 33-1 2-2 4-2 6 0 2 1 4 2 5 4 6 12 14 23 26 12 11 19 17 23 17 2 0 4-1 6-2l33-26c6 3 14 6 22 9 2 21 4 35 6 44 2 5 5 7 9 7l53 0c2 0 4-1 6-2 2-2 3-3 3-5l6-44c7-2 14-5 22-9l33 26c2 1 4 2 6 2 2 0 4-1 6-3 28-25 41-40 41-45 0-2 0-4-2-6-2-3-6-8-12-15-5-8-10-13-13-17 5-10 8-17 10-24l44-6c1-1 3-2 4-3 2-2 2-4 2-6z m183-152l0-40c0-3-14-6-42-9-3-5-5-10-9-15 10-22 15-35 15-39 0-1-1-2-1-2-24-14-35-21-36-21-1 0-6 5-13 14-7 9-12 15-15 19-4 0-7 0-8 0-2 0-5 0-9 0-3-4-8-10-15-19-7-9-11-14-13-14 0 0-12 7-35 21-1 0-2 1-2 2 0 4 5 17 15 39-3 5-6 10-9 15-28 3-42 6-42 9l0 40c0 3 14 6 42 9 3 5 6 10 9 14-10 22-15 35-15 40 0 1 1 1 2 2 0 0 4 2 10 6 5 3 11 6 16 9 6 3 9 5 9 5 2 0 6-5 13-13 7-9 12-16 15-20 4 1 7 1 9 1 1 0 4 0 8-1 10 14 19 24 26 32l2 1c1 0 13-7 36-20 0-1 1-1 1-2 0-5-5-18-15-40 3-4 6-9 9-14 28-3 42-6 42-9z m0 292l0-40c0-3-14-6-42-9-3-5-5-10-9-14 10-22 15-35 15-40 0-1-1-1-1-2-24-13-35-20-36-20-1 0-6 4-13 13-7 9-12 16-15 20-4-1-7-1-8-1-2 0-5 0-9 1-3-4-8-11-15-20-7-9-11-13-13-13 0 0-12 7-35 20-1 1-2 1-2 2 0 5 5 18 15 40-3 4-6 9-9 14-28 3-42 6-42 9l0 40c0 3 14 6 42 9 3 6 6 11 9 15-10 22-15 35-15 39 0 1 1 2 2 2 0 1 4 3 10 6 5 4 11 7 16 10 6 3 9 4 9 4 2 0 6-4 13-13 7-9 12-15 15-19 4 0 7 0 9 0 1 0 4 0 8 0 10 13 19 24 26 32l2 0c1 0 13-6 36-20 0 0 1-1 1-2 0-4-5-17-15-39 3-4 6-9 9-15 28-3 42-6 42-9z"/>
<glyph glyph-name="startup" unicode="&#103;" d="M430 384c0 8-3 14-8 19-6 6-12 8-20 8-7 0-14-2-19-8-5-5-8-11-8-19 0-8 3-14 8-19 5-6 12-8 19-8 8 0 14 2 20 8 5 5 8 11 8 19z m64 82c0-47-7-88-22-123-14-34-38-69-72-103-16-15-34-32-56-50l-6-108c0-3-2-6-4-8l-110-64c-1 0-3-1-5-1-2 0-4 1-6 3l-18 18c-3 3-4 6-3 9l25 79-81 80-79-24c0 0-1 0-2 0-3 0-5 1-7 2l-18 19c-3 3-4 7-1 11l64 109c1 3 4 5 7 5l108 6c19 21 35 40 51 55 35 36 69 61 102 74 32 14 73 20 123 20 3 0 5 0 7-2 2-2 3-4 3-7z"/>
<glyph glyph-name="dash" unicode="&#100;" d="M110 183c0 10-4 19-11 26-7 7-16 10-26 10-10 0-19-3-26-10-7-7-10-16-10-26 0-10 3-19 10-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 11 16 11 26z m55 128c0 10-4 19-11 26-7 7-16 10-26 10-10 0-19-3-26-10-7-7-11-16-11-26 0-10 4-19 11-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 11 16 11 26z m122-138l29 110c1 5 0 9-2 13-3 5-7 8-11 9-5 1-10 1-14-2-5-3-7-6-9-11l-29-109c-11-1-21-6-30-13-9-7-15-17-18-28-4-15-2-29 6-42 7-13 18-21 33-25 15-4 29-2 42 6 13 7 21 18 25 33 3 11 3 23-2 33-4 11-11 20-20 26z m188 10c0 10-3 19-10 26-7 7-16 10-26 10-10 0-19-3-26-10-7-7-11-16-11-26 0-10 4-19 11-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 10 16 10 26z m-182 183c0 10-4 18-11 26-7 7-16 10-26 10-10 0-19-3-26-10-7-8-11-16-11-26 0-10 4-19 11-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 11 16 11 26z m128-55c0 10-4 19-11 26-7 7-16 10-26 10-10 0-19-3-26-10-7-7-11-16-11-26 0-10 4-19 11-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 11 16 11 26z m91-128c0-50-13-96-40-138-4-6-9-8-16-8l-400 0c-7 0-12 2-16 8-27 42-40 88-40 138 0 35 7 68 20 99 14 32 32 59 55 82 23 23 50 41 82 55 31 13 64 20 99 20 35 0 68-7 99-20 32-14 59-32 82-55 23-23 41-50 55-82 13-31 20-64 20-99z"/>
<glyph glyph-name="stats" unicode="&#106;" d="M17 222c-14 4-20 13-16 29 3 14 12 20 27 16 0 0 50-12 50-12 0 0-26-41-26-41 0 0-35 8-35 8m455-6c4 4 10 6 16 6 7-1 12-3 16-8 11-11 11-22-1-33 0 0-128-115-128-115-5-4-10-6-16-6-5 0-9 2-14 5 0 0-146 112-146 112 0 0-28 8-28 8 0 0 26 40 26 40 0 0 18-4 18-4 4-1 7-2 8-4 0 0 135-104 135-104 0 0 114 103 114 103m-251 112c0 0-178-280-178-280-4-8-11-12-20-12-4 0-8 2-12 5-5 3-9 8-10 14-1 7 0 12 3 17 0 0 191 300 191 300 3 6 7 9 14 11 6 2 12 1 19-3 0 0 125-80 125-80 0 0 115 166 115 166 4 6 9 9 15 10 6 1 12-1 17-5 13-8 15-18 6-31 0 0-128-185-128-185-9-12-19-14-32-6 0 0-125 79-125 79"/>
<glyph glyph-name="terminal" unicode="&#108;" d="M495 451l-478 0c-10 0-17-8-17-17l0-83 512 0 0 83c0 9-7 17-17 17z m-173-72c-12 0-22 10-22 22 0 12 10 22 22 22 13 0 23-10 23-22 0-12-10-22-23-22z m61 0c-12 0-22 10-22 22 0 12 10 22 22 22 12 0 22-10 22-22 0-12-10-22-22-22z m61 0c-13 0-23 10-23 22 0 12 10 22 23 22 12 0 22-10 22-22 0-12-10-22-22-22z m-444-61l0-240c0-9 7-17 17-17l478 0c10 0 17 8 17 17l0 240z m235-141l-54-47c-7-6-18-5-24 2-6 7-5 18 2 24l40 33-40 34c-7 6-8 17-2 24 6 7 17 8 24 2l54-47c8-7 8-19 0-25z m107-51l-66 0c-9 0-17 8-17 17 0 9 8 17 17 17l66 0c9 0 17-8 17-17 0-9-8-17-17-17z"/>
<glyph glyph-name="cleaner" unicode="&#110;" d="M502 502c-13 13-35 13-48 0l-136-136-81 81c-21 20-54 20-74 0l-59-58 8-8-101-64c-6-4-10-10-11-17-1-8 2-15 7-20l273-273c5-5 11-7 17-7 1 0 2 0 3 0 7 1 13 5 17 11l64 101 8-8 58 59c20 20 20 53 0 74l-81 81 136 136c13 13 13 35 0 48z m-209-441l-47 47 46 68-68-46-40 40 29 43-43-29-45 45 36 53-53-36-47 47 85 54 201-201z"/>
<glyph glyph-name="uninstaller" unicode="&#107;" d="M256 47l183 99 0 182-183-67z m-18 247l199 72-199 73-200-73z m237 72l0-220c0-6-1-13-5-18-3-6-8-10-14-14l-201-109c-5-3-11-5-17-5-7 0-12 2-18 5l-201 109c-6 4-10 8-14 14-3 5-5 12-5 18l0 220c0 7 2 14 7 21 4 6 10 10 17 13l201 73c4 2 9 2 13 2 4 0 8 0 12-2l201-73c8-3 13-7 18-13 4-7 6-14 6-21z"/>
<glyph glyph-name="collapse" unicode="&#98;" d="M256 238l0-128c0-5-2-10-5-13-4-4-8-6-13-6-5 0-10 2-13 6l-41 41-95-95c-2-2-4-3-7-3-2 0-4 1-6 3l-33 33c-2 2-3 4-3 6 0 3 1 5 3 7l95 95-41 41c-4 3-6 8-6 13 0 5 2 9 6 13 3 3 8 5 13 5l128 0c5 0 9-2 13-5 3-4 5-8 5-13z m216 192c0-3-1-5-3-7l-95-95 41-41c4-3 6-8 6-13 0-5-2-9-6-13-3-3-8-5-13-5l-128 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 128c0 5 2 10 5 13 4 4 8 6 13 6 5 0 10-2 13-6l41-41 95 95c2 2 4 3 7 3 2 0 4-1 6-3l33-33c2-2 3-4 3-6z"/>
<glyph glyph-name="expand" unicode="&#99;" d="M252 210c0-2-1-4-3-6l-94-95 41-41c3-4 5-8 5-13 0-5-2-9-5-13-4-4-8-5-13-5l-128 0c-5 0-9 1-13 5-4 4-5 8-5 13l0 128c0 5 1 9 5 13 4 3 8 5 13 5 5 0 9-2 13-5l41-41 95 94c2 2 4 3 6 3 3 0 5-1 7-3l32-32c2-2 3-4 3-7z m223 247l0-128c0-5-1-9-5-13-4-3-8-5-13-5-5 0-9 2-13 5l-41 41-95-94c-2-2-4-3-6-3-3 0-5 1-7 3l-32 32c-2 2-3 4-3 7 0 2 1 4 3 6l94 95-41 41c-3 4-5 8-5 13 0 5 2 9 5 13 4 4 8 5 13 5l128 0c5 0 9-1 13-5 4-4 5-8 5-13z"/>
<glyph glyph-name="settings" unicode="&#97;" d="M128 91c0 5-2 10-5 13-4 4-8 6-13 6-5 0-10-2-13-6-4-3-6-8-6-13 0-5 2-9 6-12 3-4 8-6 13-6 5 0 9 2 13 6 3 3 5 7 5 12z m184 120l-195-194c-7-7-15-11-26-11-9 0-18 4-26 11l-30 30c-7 7-11 16-11 26 0 10 4 19 11 26l195 195c7-19 18-35 32-50 15-14 31-25 50-33z m181 125c0-8-2-18-6-31-9-25-25-46-47-62-23-16-47-24-74-24-36 0-66 13-91 38-25 25-37 55-37 90 0 36 12 66 37 91 25 25 55 37 91 37 11 0 22-1 34-4 13-3 23-8 31-14 3-2 5-4 5-8 0-3-2-5-5-8l-84-48 0-64 56-30c1 0 8 5 22 13 14 9 27 17 39 24 12 6 18 10 20 10 3 0 5-1 7-3 1-2 2-4 2-7z"/>
<glyph glyph-name="sort-asc" unicode="&#101;" d="M210 101c0-3-1-5-3-7l-91-91c-2-2-4-3-6-3-3 0-5 1-7 3l-91 91c-3 3-4 6-2 10 1 4 4 6 8 6l55 0 0 393c0 3 1 5 3 6 1 2 4 3 6 3l55 0c3 0 5-1 7-3 1-1 2-3 2-6l0-393 55 0c3 0 5-1 7-3 1-2 2-4 2-6z m302-37l0-55c0-3-1-5-3-6-1-2-3-3-6-3l-238 0c-3 0-5 1-6 3-2 1-3 3-3 6l0 55c0 3 1 5 3 7 1 1 3 2 6 2l238 0c3 0 5-1 6-2 2-2 3-4 3-7z m-55 146l0-55c0-2-1-4-2-6-2-2-4-3-7-3l-183 0c-3 0-5 1-6 3-2 2-3 4-3 6l0 55c0 3 1 5 3 7 1 2 3 2 6 2l183 0c3 0 5 0 7-2 1-2 2-4 2-7z m-55 147l0-55c0-3-1-5-2-7-2-2-4-2-7-2l-128 0c-3 0-5 0-6 2-2 2-3 4-3 7l0 55c0 2 1 4 3 6 1 2 3 3 6 3l128 0c3 0 5-1 7-3 1-2 2-4 2-6z m-55 146l0-55c0-3 0-5-2-7-2-1-4-2-7-2l-73 0c-3 0-5 1-6 2-2 2-3 4-3 7l0 55c0 3 1 5 3 6 1 2 3 3 6 3l73 0c3 0 5-1 7-3 2-1 2-3 2-6z"/>
<glyph glyph-name="sort-desc" unicode="&#102;" d="M347 64l0-55c0-3 0-5-2-6-2-2-4-3-7-3l-73 0c-3 0-5 1-6 3-2 1-3 3-3 6l0 55c0 3 1 5 3 7 1 1 3 2 6 2l73 0c3 0 5-1 7-2 2-2 2-4 2-7z m-137 37c0-3-1-5-3-7l-91-91c-2-2-4-3-6-3-3 0-5 1-7 3l-91 91c-3 3-4 6-2 10 1 4 4 6 8 6l55 0 0 393c0 3 1 5 3 6 1 2 4 3 6 3l55 0c3 0 5-1 7-3 1-1 2-3 2-6l0-393 55 0c3 0 5-1 7-3 1-2 2-4 2-6z m192 109l0-55c0-2-1-4-2-6-2-2-4-3-7-3l-128 0c-3 0-5 1-6 3-2 2-3 4-3 6l0 55c0 3 1 5 3 7 1 2 3 2 6 2l128 0c3 0 5 0 7-2 1-2 2-4 2-7z m55 147l0-55c0-3-1-5-2-7-2-2-4-2-7-2l-183 0c-3 0-5 0-6 2-2 2-3 4-3 7l0 55c0 2 1 4 3 6 1 2 3 3 6 3l183 0c3 0 5-1 7-3 1-2 2-4 2-6z m55 146l0-55c0-3-1-5-3-7-1-1-3-2-6-2l-238 0c-3 0-5 1-6 2-2 2-3 4-3 7l0 55c0 3 1 5 3 6 1 2 3 3 6 3l238 0c3 0 5-1 6-3 2-1 3-3 3-6z"/>
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 9.0 KiB

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 614 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 510 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 953 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 378 B

View File

@@ -1,28 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Stacer</title>
<script>
window.$ = window.jQuery = require('jquery');
</script>
<link rel="stylesheet" type="text/css" href="../assets/css/font.css">
<link rel="stylesheet" type="text/css" href="../assets/css/style.css">
<link rel="stylesheet" type="text/css" href="../assets/css/loader.css">
<link rel="stylesheet" type="text/css" href="../assets/css/amaran.min.css">
<!--Themes-->
<link rel="stylesheet" type="text/css" href="../assets/css/themes/dark.css">
<link rel="stylesheet" type="text/css" href="../assets/css/themes/light.css">
</head>
<body>
<app v-cloak />
</body>
<!-- Scripts -->
<script src="../libs/vue.min.js"></script>
<script src="index.js"></script>
<!-- Scripts -->
</html>

1
libs/amaran.min.js vendored
View File

File diff suppressed because one or more lines are too long

8
libs/vue.min.js vendored
View File

File diff suppressed because one or more lines are too long

48
main.js
View File

@@ -1,48 +0,0 @@
const {
app,
BrowserWindow,
} = require('electron')
const electron = require('electron')
var win
function createWindow() {
const _width = 935, _height = 620
win = new BrowserWindow({
width: _width,
height: _height,
minWidth: _width,
minHeight: _height,
maxWidth: _width,
maxHeight: _height,
maximizable: false,
resizable: false,
icon: './assets/img/icons/icon256x256.png'
})
try {
const screenSize = electron.screen.getPrimaryDisplay().size;
const w = (screenSize.width - _width ) / 2 ,
h = (screenSize.height - _height ) / 2
win.setPosition(w,h)
}
catch(err) {
win.center()
}
win.setMenu(null)
win.loadURL(`file://${__dirname}/bundle/index.html`)
win.on('closed', () => win = null )
}
app.on('ready', createWindow)
app.on('window-all-closed', () => app.quit() )
app.on('activate', () => {
if (win === null)
createWindow()
})

View File

@@ -1,57 +0,0 @@
{
"name": "stacer",
"productName": "Stacer",
"version": "1.0.7",
"description": "Linux System Optimizer and Monitoring",
"license": "MIT",
"main": "main.js",
"author": "Oguzhan Inan <oguzhan3488@gmail.com>",
"keywords": [
"linux",
"system",
"optimizer",
"monitoring"
],
"repository": {
"type": "git",
"url": "https://github.com/oguzhaninan/Stacer.git"
},
"bugs": {
"url": "https://github.com/oguzhaninan/Stacer/issues"
},
"build": {
"linux": {
"icon": "assets/img/icons"
}
},
"homepage": "https://github.com/oguzhaninan/Stacer",
"scripts": {
"start": "yarn run build; electron .",
"build": "babel src/ -d bundle/",
"clean": "rm bundle/*.js bundle/**/*.js bundle/**/**/*.js",
"package-x86": "electron-packager . --overwrite --platform=linux --arch=ia32 --icon=assets/img/icons/icon256x256.png --prune=true --out=release-builds --electron-version=1.6.10",
"package-x64": "electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/img/icons/icon256x256.png --prune=true --out=release-builds --electron-version=1.6.10",
"installer-x86": "electron-installer-debian --src release-builds/Stacer-linux-ia32/ --arch i386 --dest dest/installers/ --icon assets/img/icons/icon256x256.png",
"installer-x64": "electron-installer-debian --src release-builds/Stacer-linux-x64/ --arch amd64 --dest dest/installers/ --icon assets/img/icons/icon256x256.png",
"release-x86": "npm run package-x86 && npm run installer-x86",
"release-x64": "npm run package-x64 && npm run installer-x64",
"clean-package": "rm -r release-builds/ dest/"
},
"dependencies": {
"chart.js": "^2.6.0",
"chartkick": "^2.2.4",
"chokidar": "^1.7.0",
"jquery": "^3.2.1",
"progressbar.js": "^1.0.1",
"properties-reader": "^0.0.15",
"sudo-prompt": "^7.0.0",
"systeminformation": "^3.18.0",
"winston": "^2.3.1"
},
"devDependencies": {
"babel-cli": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"electron": "^1.6.10",
"electron-builder": "^18.6.2"
}
}

View File

@@ -1,116 +0,0 @@
import Dashboard from './dashboard/Dashboard'
import SystemCleaner from './system-cleaner/SystemCleaner'
import StartupApps from './startup-apps/StartupApps'
import Services from './services/Services'
import Process from './process/Process'
import Uninstaller from './uninstaller/Uninstaller'
import Resources from './resources/Resources'
import Settings from './settings/Settings'
export default {
template: `<div id="main" class="fr">
<div class="sidebar-nav">
<ul>
<li :class="isActiveNav(1)" @click="activeNav = 1" >
<i class="icon-dash"></i>
<label>{{ lang('dashboard') }}</label>
</li>
<li :class="isActiveNav(2)" @click="activeNav = 2" >
<i class="icon-cleaner"></i>
<label>{{ lang('sysCleaner') }}</label>
</li>
<li :class="isActiveNav(3)" @click="activeNav = 3" >
<i class="icon-startup"></i>
<label>{{ lang('startupApps') }}</label>
</li>
<li :class="isActiveNav(4)" @click="activeNav = 4" >
<i class="icon-service"></i>
<label>{{ lang('services') }}</label>
</li>
<li :class="isActiveNav(5)" @click="activeNav = 5" >
<i class="icon-terminal"></i>
<label>{{ lang('process') }}</label>
</li>
<li :class="isActiveNav(6)" @click="activeNav = 6" >
<i class="icon-uninstaller"></i>
<label>{{ lang('uninstaller') }}</label>
</li>
<li :class="isActiveNav(7)" @click="activeNav = 7" >
<i class="icon-stats"></i>
<label>{{ lang('resources') }}</label>
</li>
<li :class="isActiveNav(8)" @click="activeNav = 8" >
<i class="icon-settings"></i>
<label>{{ lang('appSettings') }}</label>
</li>
</ul>
</div>
<dashboard v-show="activeNav == 1">
<h1> {{ lang('dashboard') }} </h1>
</dashboard>
<system-cleaner v-show="activeNav == 2">
<h1> {{ lang('sysCleaner') }} </h1>
</system-cleaner>
<startup-apps v-show="activeNav == 3">
<h1> {{ lang('startupApps') }} </h1>
</startup-apps>
<services v-show="activeNav == 4">
<h1> {{ lang('services') }} </h1>
</services>
<process v-show="activeNav == 5">
<h1> {{ lang('process') }} </h1>
</process>
<uninstaller v-show="activeNav == 6">
<h1> {{ lang('uninstaller') }} </h1>
</uninstaller>
<resources v-show="activeNav == 7">
<h1> {{ lang('resources') }} </h1>
</resources>
<settings v-show="activeNav == 8">
<h1> {{ lang('appSettings') }} </h1>
</settings>
<!--Startup Loading-->
<div id="loading">
<span class="loader_text"> Loading... </span>
<div id="loader">
<span></span><span></span><span></span>
<span></span><span></span><span></span>
<span></span><span></span><span></span>
<span></span><span></span><span></span>
<span></span><span></span><span></span>
<span></span><span></span><span></span>
<span></span><span></span>
</div>
</div>
</div>`,
data() {
return ({
activeNav: 1
})
},
components: {
'dashboard': Dashboard,
'system-cleaner': SystemCleaner,
'startup-apps': StartupApps,
'services': Services,
'process': Process,
'uninstaller': Uninstaller,
'resources': Resources,
'settings': Settings,
},
methods: {
isActiveNav(val) {
return this.activeNav == val ? 'nav-active' : ''
}
}
}

View File

@@ -1,11 +0,0 @@
export default {
template: `<div class="cont fl">
<h3>{{ title }}</h3>
<svg viewBox="0 0 106 76" class="circle-bar" :style="'background-image: url(../assets/img/' + img + ')'">
<path d="M 58,73 m -45,0 a 45,45 0 1 1 80,0" stroke="#202b33" stroke-width="14" fill-opacity="0" />
<path :id="idd" d="M 58,73 m -45,0 a 45,45 0 1 1 80,0" :stroke="stroke" stroke-width="14" fill-opacity="0" />
</svg>
<span>{{ text }}</span>
</div>`,
props: ['stroke', 'text', 'idd', 'img', 'title']
}

View File

@@ -1,29 +0,0 @@
import {
Path
} from 'progressbar.js'
import si from 'systeminformation'
import CircleBar from './CircleBar'
export default {
template: `<circle-bar :title="lang('cpu')" idd="cpu-cont" stroke="#2ecc71" :text="cpuValue + '%'" img="cpu.png" />`,
components: {
'circle-bar': CircleBar
},
data() {
return ({
cpuValue: 0
})
},
mounted() {
let cpuBar = new Path('#cpu-cont', {
duration: 1000
})
setInterval(() => {
si.currentLoad(val => {
this.cpuValue = val.currentload.toFixed(0)
cpuBar.animate(this.cpuValue / 100)
})
}, 1000)
}
}

View File

@@ -1,67 +0,0 @@
import {
shell
} from 'electron'
import si from 'systeminformation'
//Components
import SystemInfo from './SystemInfo'
import UpBar from './UpBar'
import DownBar from './DownBar'
import CpuBar from './CpuBar'
import MemoryBar from './MemoryBar'
import DiskBar from './DiskBar'
export default {
template: `<transition name="slide-fade">
<div class="content">
<slot></slot>
<cpu-bar/>
<memory-bar/>
<disk-bar/>
<down-bar/>
<system-info/>
<up-bar/>
<!--Update Check-->
<div class="update-check" v-show="update_check">
<span>{{ lang('updateMsg') }}</span>
<button @click="download_update">
{{ lang('downloadUpdate') }}
</button>
</div>
</div>
</transition>`,
data() {
return ({
update_check: false
})
},
components: {
'system-info': SystemInfo,
'up-bar': UpBar,
'down-bar': DownBar,
'cpu-bar': CpuBar,
'memory-bar': MemoryBar,
'disk-bar': DiskBar
},
methods: {
// open the link on browser
download_update() {
shell.openExternal('https://github.com/oguzhaninan/Stacer/releases/latest')
}
},
created() {
// Update check
try {
$.getJSON('https://api.github.com/repos/oguzhaninan/Stacer/releases/latest', data => {
let currentVersion = require('../../../package.json').version.toString()
let releaseVersion = data.tag_name.substr(1).toString()
this.update_check = (currentVersion != releaseVersion)
})
} catch (err) {
logger.error('Update Check', err)
}
}
}

View File

@@ -1,36 +0,0 @@
import {
Path
} from 'progressbar.js'
import si from 'systeminformation'
import helpers from '../../utils/helpers'
import CircleBar from './CircleBar'
export default {
template: `<circle-bar :title="lang('disk')" idd="disk-cont" stroke="#e74c3c" :text="this.diskUsed + ' / ' + this.diskTotal + 'GB'" img="disk.png" />`,
components: {
'circle-bar': CircleBar
},
data() {
return ({
diskUsed: 0,
diskTotal: 0,
diskBar: null
})
},
mounted() {
this.diskBar = new Path('#disk-cont', {
duration: 5000
})
this.diskInfo()
setInterval(this.diskInfo, 5000)
},
methods: {
diskInfo() {
si.fsSize(disk => {
this.diskUsed = helpers.prettyDiskSize(disk[0].used)
this.diskTotal = helpers.prettyDiskSize(disk[0].size)
this.diskBar.animate(disk[0].use / 100)
})}
}
}

View File

@@ -1,41 +0,0 @@
import {
Line
} from 'progressbar.js'
import si from 'systeminformation'
export default {
template: `<div class="line-cont">
<h3>{{ lang('download') }}</h3>
<div id="down-bar"></div>
<span>{{ downSpeed + ' kB/s' }}</span>
</div>`,
data() {
return ({
downSpeed: 0
})
},
mounted() {
let downBar = new Line('#down-bar', {
strokeWidth: 5,
duration: 1000,
color: '#3498db',
trailColor: '#202b33'
})
let max = 1000
// Get network name
si.networkInterfaceDefault(defaultNetwork => {
setInterval(() => {
// get down speed
si.networkStats(defaultNetwork, data => {
let speed = Math.abs(data.rx_sec / 1024).toFixed(2)
this.downSpeed = speed > 0 ? speed : 0
// down bar update
max = max < this.downSpeed ? this.downSpeed : max
let percent = this.downSpeed / max < 1 ? this.downSpeed / max : 1
downBar.animate(percent)
})
}, 1000)
})
}
}

View File

@@ -1,32 +0,0 @@
import {
Path
} from 'progressbar.js'
import si from 'systeminformation'
import helpers from '../../utils/helpers'
import CircleBar from './CircleBar'
export default {
template: `<circle-bar :title="lang('memory')" idd="mem-cont" stroke="#f1c40f" :text="memoryValue" img="memory.png" />`,
components: {
'circle-bar': CircleBar
},
data() {
return ({
memoryValue: 0
})
},
mounted() {
let memoryBar = new Path('#mem-cont', {
duration: 1500
})
setInterval(() => {
si.mem(ram => {
let usedMem = ram.total - ram.available
let totalMem = ram.total
this.memoryValue = helpers.prettyMemSize(usedMem) + ' / ' + helpers.prettyMemSize(totalMem) + 'GB'
memoryBar.animate(usedMem / totalMem)
})
}, 1500)
}
}

View File

@@ -1,31 +0,0 @@
import si from 'systeminformation'
export default {
template: `<div class="system-info">
<h3>{{ lang('systemInfo') }}</h3>
<ul> <li v-for="info in information"> {{ info }} </li> </ul>
</div>`,
data() {
return {
information: []
}
},
created() {
si.osInfo(o => {
this.information.push(lang('hostname') + ': ' + isUndefined(o.hostname))
this.information.push(lang('platform') + ': ' + isUndefined(o.platform) + " " + isUndefined(o.arch))
this.information.push(lang('distribution') + ': ' + isUndefined(o.distro) + " " + isUndefined(o.release))
this.information.push(lang('kernelRel') + ': ' + isUndefined(o.kernel))
si.cpu(c => {
this.information.push(lang('cpuModel') + ': ' + isUndefined(c.manufacturer) + " " + isUndefined(c.brand))
this.information.push(lang('cpuSpeed') + ': ' + isUndefined(c.speed) + "GHz")
this.information.push(lang('cpuCores') + ': ' + c.cores)
})
})
}
}
function isUndefined(o) {
if(typeof o == 'string') return o
else return 'Undefined'
}

View File

@@ -1,41 +0,0 @@
import {
Line
} from 'progressbar.js'
import si from 'systeminformation'
export default {
template: `<div class="line-cont">
<h3>{{ lang('upload') }}</h3>
<div id="up-bar"></div>
<span>{{ this.upSpeed + ' kB/s' }}</span>
</div>`,
data() {
return ({
upSpeed: 0
})
},
mounted() {
let upBar = new Line('#up-bar', {
strokeWidth: 5,
duration: 1000,
color: '#3498db',
trailColor: '#202b33'
})
let max = 1000
// Get network name
si.networkInterfaceDefault(defaultNetwork => {
setInterval(() => {
// get upload speed
si.networkStats(defaultNetwork, data => {
let speed = Math.abs(data.tx_sec / 1024).toFixed(2)
this.upSpeed = speed > 0 ? speed : 0
// up bar update
max = max < this.upSpeed ? this.upSpeed : max
let percent = this.upSpeed / max < 1 ? this.upSpeed / max : 1
upBar.animate(percent)
})
}, 1000)
})
}
}

View File

@@ -1,170 +0,0 @@
import {
spawnSync
} from 'child_process'
import {
showMessage
} from '../../utils/helpers.js'
import ProcessesList from './ProcessesList'
export default {
template: `<transition name="slide-fade">
<div class="content">
<slot></slot>
<div class="processes">
<div class="fl w100">
<h3 class="fl">{{ lang('process') }} ({{ processes.length }})</h3>
<input type="text" v-model="searchString" :placeholder="lang('search') + '...'" />
</div>
<table class="datatable">
<thead>
<tr>
<th @click="sortPid" scope="col" width="80">
PID <i :class="sortAmount(sPid)"></i>
</th>
<th @click="sortCpu" scope="col" width="70">
%CPU <i :class="sortAmount(sCpu)"></i>
</th>
<th @click="sortMem" scope="col" width="80">
%MEM <i :class="sortAmount(sMem)"></i>
</th>
<th @click="sortRss" scope="col" width="80">
RSS <i :class="sortAmount(sRss)"></i>
</th>
<th @click="sortVSize" scope="col" width="80">
VSIZE <i :class="sortAmount(sVSize)"></i>
</th>
<th @click="sortUser" scope="col" width="100">
User <i :class="sortAmount(sUser)"></i>
</th>
<th @click="sortCmd" scope="col">
Process <i :class="sortAmount(sCmd)"></i>
</th>
</tr>
</thead>
</table>
<div class="tbody scroll">
<table class="datatable" style="margin-top: -18px;">
<thead>
<tr>
<th scope="col" width="80"></th>
<th scope="col" width="70"></th>
<th scope="col" width="80"></th>
<th scope="col" width="80"></th>
<th scope="col" width="80"></th>
<th scope="col" width="100"></th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<tr v-for="p in processes" @click="selectPid(p.pid)" :class="(selectedPid == p.pid) ? 'selectedRow' : ' '">
<td :title="p.pid">{{ p.pid }}</th>
<td :title="p.pcpu">{{ p.pcpu }}</td>
<td :title="p.pmem">{{ p.pmem }}</td>
<td :title="p.rss">{{ p.rss }}</td>
<td :title="p.vsize">{{ p.vsize }}</td>
<td :title="p.uname">{{ p.uname }}</td>
<td :title="p.cmd">{{ p.cmd }}</td>
</tr>
</tbody>
</table>
</div>
<div class="refreshCont">
<label>{{ lang('refresh') }} ({{ refreshInterval }})</label>
<input type="range" min="1" max="10" step="1" v-model="refreshInterval" class="refreshProcesses"/>
</div>
<button @click="endProcess" :disabled="selectedPid == 0">{{ lang('endProcess') }}</button>
</div>
</div>
</transition>`,
data() {
return ({
processes: [],
sPid: 0,
sMem: 0,
sRss: 0,
sVSize: 0,
sUser: 0,
sCmd: 0,
sCpu: 1,
sort: ['--sort', '-pcpu'],
searchString: '',
selectedPid: 0,
refreshInterval: 2,
interval: null
})
},
created() {
this.interval = setInterval(() => this.processes = ProcessesList(this.searchString, this.sort), this.refreshInterval * 1000)
},
watch: {
refreshInterval(val) {
clearInterval(this.interval)
this.interval = setInterval(() => this.processes = ProcessesList(this.searchString, this.sort), val * 1000)
}
},
methods: {
selectPid(pid) {
if (this.selectedPid == pid)
this.selectedPid = 0
else
this.selectedPid = pid
},
sortPid() {
this.sPid = this.changeAmount(this.sPid)
this.changeSort(this.sPid, 'pid')
},
sortCpu() {
this.sCpu = this.changeAmount(this.sCpu)
this.changeSort(this.sCpu, 'pcpu')
},
sortMem() {
this.sMem = this.changeAmount(this.sMem)
this.changeSort(this.sMem, 'pmem')
},
sortRss() {
this.sRss = this.changeAmount(this.sRss)
this.changeSort(this.sRss, 'rss')
},
sortVSize() {
this.sVSize = this.changeAmount(this.sVSize)
this.changeSort(this.sVSize, 'vsize')
},
sortUser() {
this.sUser = this.changeAmount(this.sUser)
this.changeSort(this.sUser, 'uname')
},
sortCmd() {
this.sCmd = this.changeAmount(this.sCmd)
this.changeSort(this.sCmd, 'cmd')
},
sortAmount(s) {
switch (s) {
case 1:
return 'icon-sort-desc'
case -1:
return 'icon-sort-asc'
default:
return ''
}
},
changeSort(column, header) {
this.sort = column == 0 ? [] : ['--sort', column == 1 ? '-' + header : header]
},
changeAmount(column) {
this.sPid = this.sMem = this.sRss = this.sVSize = this.sUser = this.sCmd = this.sCpu = 0
return column == 1 ? -1 : (column == 0 ? 1 : 0)
},
endProcess() {
if (this.selectedPid != 0) {
var kill = spawnSync('kill', [this.selectedPid])
if (kill.stderr.toString().indexOf('permitted') !== -1)
showMessage(lang('permitted'), 'error')
else
logger.error('Process Kill', kill.stderr.toString())
}
this.selectedPid = 0
}
}
}

View File

@@ -1,38 +0,0 @@
import {
spawnSync
} from 'child_process'
import {
formatBytes
} from '../../utils/helpers'
import fs from 'fs'
export default (search = '', sort = []) => {
search = search.toLowerCase()
let ps = spawnSync('ps', ['ax', '-o', 'pid,rss,pmem,vsize,uname,pcpu,cmd', ...sort, '--no-headings'])
if (ps.stderr.toString())
logger.error('List Processes', ps.stderr.toString())
if ( search )
return ps.stdout.toString().split('\n')
.filter(p => p.toLowerCase().indexOf(search) !== -1)
.map(p => procParse(p.trim())).slice(0, -1)
else
return ps.stdout.toString().split('\n')
.map(p => procParse(p.trim())).slice(0, -1)
}
function procParse(data) {
let columns = data.split(/\s+/)
return {
pid: columns[0],
rss: formatBytes(columns[1] * 1024),
pmem: columns[2],
vsize: formatBytes(columns[3] * 1024),
uname: columns[4],
pcpu: columns[5],
cmd: columns.slice(6).join(' ')
}
}

View File

@@ -1,59 +0,0 @@
import si from 'systeminformation'
import Chartkick from 'chartkick'
export default {
template: `<div>
<h4>{{ lang('cpuHistory') }} <slot></slot></h4>
<div id="cpus-chart" :style="'height:' + fheight"></div>
</div>`,
props: ['fheight'],
data() {
return ({
cpuValues: [],
cpuData: [],
seconds: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
]
})
},
mounted() {
si.currentLoad(val => {
let cpuCount = val.cpus.length
for (var i = 0; i < cpuCount; i++)
this.cpuValues.push([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
])
let cpuChart = new Chartkick.LineChart('cpus-chart', this.cpuData, {
colors: ['#2ecc71', '#e74c3c', '#3498db', '#f1c40f', '#9b59b6', '#34495e',
'#1abc9c', '#e67e22', '#46f0f0', '#f032e6', '#fabebe', '#008080',
'#e6beff', '#aa6e28', '#d2f53c', '#800000', '#aaffc3', '#808000',
'#000080', '#808080'],
legend: true,
min: 0,
max: 100,
points: false
})
setInterval(() => {
si.currentLoad(val => {
this.cpuValues.forEach((cpu, i) => this.cpuValues[i].splice(0, 1))
this.cpuValues.forEach((cpu, i) => this.cpuValues[i].push(val.cpus[i].load.toFixed(1)))
this.cpuData = []
this.cpuValues.forEach((cpu, i) => {
let name = 'CPU' + (i + 1) + ' ' + val.cpus[i].load.toFixed(1) + '%'
this.cpuData.push({
name: name,
data: this.cpuValues[i].map((d, i) => [this.seconds[i], d])
})
})
cpuChart.updateData(this.cpuData)
})
}, 1000)
})
}
}

View File

@@ -1,65 +0,0 @@
import helpers from '../../utils/helpers'
import si from 'systeminformation'
import Chartkick from 'chartkick'
export default {
template: `<div>
<h4>{{ lang('memHistory') }} <slot></slot></h4>
<div id="memory-chart" :style="'height:' + fheight"></div>
</div>`,
props: ['fheight'],
data() {
return ({
memoryValues: [],
memoryData: [],
seconds: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
]
})
},
mounted() {
si.mem(ram => {
let totalMem = helpers.prettyMemSize(ram.total)
let totalSwap = helpers.prettyMemSize(ram.swaptotal)
for (var i = 0; i < 2; i++)
this.memoryValues.push([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
])
let memoryChart = new Chartkick.LineChart('memory-chart', this.memoryData, {
colors: ['#2ecc71', '#e74c3c', '#3498db', '#f1c40f', '#9b59b6', '#34495e', '#1abc9c', '#e67e22'],
min: 0,
max: Math.max(totalMem, totalSwap),
legend: true,
points: false
})
setInterval(() => {
si.mem(ram => {
let usedMem = helpers.prettyMemSize(ram.total - ram.available)
let usedSwap = helpers.prettyMemSize(ram.swapused)
this.memoryValues.forEach((m, i) => this.memoryValues[i].splice(0, 1))
this.memoryValues[0].push(usedMem)
this.memoryValues[1].push(usedSwap)
this.memoryData = []
this.memoryData.push({
name: lang('memory'),
data: this.memoryValues[0].map((d, i) => [this.seconds[i], d])
})
this.memoryData.push({
name: lang('swap').toString().toUpperCase(),
data: this.memoryValues[1].map((d, i) => [this.seconds[i], d])
})
memoryChart.updateData(this.memoryData)
})
}, 1000)
})
}
}

View File

@@ -1,62 +0,0 @@
import helpers from '../../utils/helpers'
import si from 'systeminformation'
import Chartkick from 'chartkick'
export default {
template: `<div>
<h4>{{ lang('networkHistory') }} <slot></slot></h4>
<div id="network-chart" :style="'height:' + fheight"></div>
</div>`,
props: ['fheight'],
data() {
return ({
networkValues: [],
networkData: [],
seconds: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
]
})
},
mounted() {
si.networkInterfaceDefault(defaultNetwork => {
for (var i = 0; i < 2; i++)
this.networkValues.push([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
])
let networkChart = new Chartkick.LineChart('network-chart', this.networkData, {
colors: ['#2ecc71', '#e74c3c', '#3498db', '#f1c40f', '#9b59b6', '#34495e', '#1abc9c', '#e67e22'],
legend: true,
min: 0,
points: false
})
setInterval(() => {
si.networkStats(defaultNetwork, data => {
let downSpeed = Math.abs(data.rx_sec / 1024).toFixed(2) || 0.00
let upSpeed = Math.abs(data.tx_sec / 1024).toFixed(2) || 0.00
this.networkValues.forEach((n, i) => this.networkValues[i].splice(0, 1))
this.networkValues[0].push(downSpeed > 0 ? downSpeed : 0)
this.networkValues[1].push(upSpeed > 0 ? upSpeed : 0)
this.networkData = []
this.networkData.push({
name: lang('download'),
data: this.networkValues[0].map((d, i) => [this.seconds[i], d])
})
this.networkData.push({
name: lang('upload'),
data: this.networkValues[1].map((d, i) => [this.seconds[i], d])
})
networkChart.updateData(this.networkData)
})
}, 1000)
})
}
}

View File

@@ -1,50 +0,0 @@
import 'chart.js'
Chart.defaults.global.defaultFontColor = '#aaa'
Chart.defaults.global.defaultFontFamily = 'Ubuntu'
// Components
import CpuHistory from './CpuHistory'
import MemoryHistory from './MemoryHistory'
import NetworkHistory from './NetworkHistory'
export default {
template: `<transition name="slide-fade">
<div class="content">
<slot></slot>
<div class="resources">
<cpu-history v-show="fitChart == 0 || fitChart == 1" :fheight="fitHeight">
<i :class="isFit ? 'icon-collapse' : 'icon-expand'" @click="fit(1)" />
</cpu-history>
<memory-history v-show="fitChart == 0 || fitChart == 2" :fheight="fitHeight">
<i :class="isFit ? 'icon-collapse' : 'icon-expand'" @click="fit(2)" />
</memory-history>
<network-history v-show="fitChart == 0 || fitChart == 3" :fheight="fitHeight">
<i :class="isFit ? 'icon-collapse' : 'icon-expand'" @click="fit(3)" />
</network-history>
</div>
</div>
</transition>`,
components: {
'cpu-history': CpuHistory,
'memory-history': MemoryHistory,
'network-history': NetworkHistory
},
data() {
return ({
fitChart: 0,
fitHeight: '125px',
isFit: false
})
},
methods: {
fit(val) {
if (this.fitChart == val) {
this.fitChart = 0
this.isFit = false
} else {
this.fitChart = val
this.isFit = true
}
this.fitHeight = this.fitChart == 0 ? '125px' : '500px'
}
}
}

View File

@@ -1,47 +0,0 @@
import {
command,
showMessage
} from '../../utils/helpers'
import sudo from 'sudo-prompt'
export default {
template: `<li>
{{ name }}
<input type="checkbox" class="switch" :id="'s_' + name" :checked="isRun" @change="statusChange" />
<label :for="'s_' + name" class="fr"></label>
</li>`,
props: ['name', 'is-run'],
data() {
return ({
isBusy: false
})
},
methods: {
statusChange(e) {
let serviceName = e.target.id.substr(2)
let isChecked = e.target.checked
let status = isChecked ? 'start' : 'stop'
if (!this.isBusy) {
this.isBusy = true
sudo.exec(command(`systemctl ${status} ${serviceName}`), {
name: 'Stacer'
},
(error, stdout, stderr) => {
if (stderr) {
e.target.checked = ! isChecked
showMessage(lang('opFail'), 'error')
logger.error('Service Status Change', stderr)
} else {
showMessage(serviceName + lang('service').toLowerCase() + status + (e.target.checked ? 'ed' : 'ped'), 'success')
}
this.isBusy = false
})
} else {
showMessage(lang('anotherProc'), 'error')
e.target.checked = ! isChecked
}
}
}
}

View File

@@ -1,70 +0,0 @@
import {
spawnSync
} from 'child_process'
import {
command,
showMessage
} from '../../utils/helpers'
import si from 'systeminformation'
// components
import Service from './Service'
export default {
template: `<transition name="slide-fade">
<div class="content">
<slot></slot>
<div class="item-list services-list">
<div class="fl w100">
<h3 class="fl">{{ lang('serviceTitle') }} ({{ filteredServices.length }})</h3>
<input type="text" v-model="searchString" :placeholder="lang('search') + '...'" />
</div>
<ul v-show="filteredServices.length" class="scroll">
<service v-for="s in filteredServices" :name="s.name" :is-run="s.isRun" />
</ul>
<span class="empty-list" v-show="! filteredServices.length">
{{ lang('noService') }}
</span>
</div>
</div>
</transition>`,
components: {
'service': Service
},
data() {
return ({
servicesList: [],
searchString: ''
})
},
created() {
const services = spawnSync('bash', ['-c', localStorage.getAllService])
let serviceNames = services.stdout.toString().trim().split('\n')
serviceNames.forEach(serviceName => {
const isActive = spawnSync('systemctl', ['is-active', serviceName]).stdout.toString().trim()
let checked = isActive === 'active' ? 'checked' : ''
this.servicesList.push({
name: serviceName,
isRun: checked
})
})
},
computed: {
// Search services
filteredServices() {
let tempServicesList = this.servicesList,
searchString = this.searchString
if (!searchString) return tempServicesList
searchString = searchString.toString().trim().toLowerCase()
return tempServicesList.filter(item =>
item.name.toString().trim().toLowerCase().indexOf(searchString) !== -1
)
}
}
}

View File

@@ -1,46 +0,0 @@
import LanguageList from '../../languages/lang-list'
import ThemeList from './theme-list'
import { showMessage } from '../../utils/helpers'
export default {
template: `<transition name="slide-fade">
<div class="content settings">
<slot></slot>
<div>
<label>{{ lang('appLanguage') }}</label>
<select v-model="selectedLang" @change="langChange">
<option :value="k" v-for="(v, k) in langList">{{v}}</option>
</select>
</div>
<div>
<label>{{ lang('appTheme') }}</label>
<select v-model="selectedTheme" @change="themeChange">
<option :value="k" v-for="(v, k) in themeList">{{v}}</option>
</select>
</div>
</div>
</transition>`,
data() {
return({
langList: LanguageList,
selectedLang: '',
themeList: ThemeList,
selectedTheme: ''
})
},
created() {
this.selectedLang = localStorage.getItem('appLanguage') || 'en'
this.selectedTheme = localStorage.getItem('appTheme') || 'dark'
},
methods: {
langChange() {
localStorage.setItem('appLanguage', this.selectedLang)
showMessage(lang('changedLang'), 'warning')
},
themeChange() {
localStorage.setItem('appTheme', this.selectedTheme)
document.body.classList = [this.selectedTheme]
}
}
}

View File

@@ -1,4 +0,0 @@
export default {
"dark": "Dark",
"light": "Light"
}

View File

@@ -1,43 +0,0 @@
import fs from 'fs'
import {
showMessage
} from '../../utils/helpers'
export default {
template: `<li>
<span>{{ name }}</span>
<input type="checkbox" class="switch" :id="file" :checked="isStart" @change="statusChange" />
<label :for="file" class="fr"></label>
<button :name="file" @click="removeApp" class="remove-startup-app"></button>
<button @click="editApp" class="edit-startup-app"></button>
</li>`,
props: ['name', 'file', 'is-start'],
methods: {
removeApp(e) {
fs.unlinkSync(localStorage.autostartApps + e.target.name)
},
editApp(){
//Emit an event to startupApps
this.$emit('edit',this.name)
},
statusChange(e) {
let fileName = e.target.id
let isStart = e.target.checked
try {
let data = fs.readFileSync(localStorage.autostartApps + '/' + fileName).toString()
let check = data.match(/\X-GNOME-Autostart-enabled=.*/g)
if (check)
data = data.replace(/\X-GNOME-Autostart-enabled=.*/gi, 'X-GNOME-Autostart-enabled=' + isStart)
else
data += ('X-GNOME-Autostart-enabled=' + isStart + '\n')
fs.writeFileSync(localStorage.autostartApps + '/' + fileName, data)
} catch (err) {
logger.error('StartupApps Status Change', stderr)
showMessage(lang('opFail'), 'error')
}
}
}
}

View File

@@ -1,139 +0,0 @@
import {
showMessage
} from '../../utils/helpers'
import properties from 'properties-reader'
import chokidar from 'chokidar'
import fs from 'fs'
import STApp from './STApp'
export default {
template: `<transition name="slide-fade">
<div class="content">
<slot></slot>
<div class="item-list startup-apps-list">
<h3>{{ lang('startupTitle') }} ({{ apps.length }})</h3>
<ul v-show="apps.length" class="scroll">
<app v-for="app in apps" :name="app.name" :file="app.file" :is-start="app.isStart" @edit="editApp"></app>
</ul>
<span class="empty-list" v-show="! apps.length">
{{ lang('noStartup') }}
</span>
</div>
<button @click="showPrompt = true" class="add-startup-app">{{ lang('addStartup') }}</button>
<div class="promptDialog" v-show="showPrompt">
<div class="dialog">
<div>
<span>{{ lang('app') }}</span>
<input type="text" v-model="appName" :disabled="modeEdit" :placeholder="lang('appName')" />
<input type="text" v-model="appComment" :placeholder="lang('appComment')" />
<input type="text" v-model="appExec" :placeholder="lang('appCommand')" />
<button @click="saveApp">{{ modeEdit? lang('update') : lang('add') }}</button>
<button @click="cancelPrompt">{{ lang('cancel') }}</button>
</div>
</div>
</div>
</div>
</transition>`,
components: {
'app': STApp
},
data() {
return ({
apps: [],
showPrompt: false,
appName: '',
appComment: '',
appExec: '',
modeEdit:false
})
},
created() {
this.getApps()
chokidar.watch(localStorage.autostartApps, {
persistent: true,
ignoreInitial: true
})
.on('add', path => this.getApps())
.on('unlink', path => this.getApps())
.on('change', path => this.getApps())
},
methods: {
saveApp() {
if (this.appName && this.appComment && this.appExec) {
let desktopFile = `[Desktop Entry]
\rName=${this.appName}
\rExec=${this.appExec}
\rComment=${this.appComment}
\rType=Application
\rTerminal=false
\rX-GNOME-Autostart-enabled=true`
try {
if (!fs.existsSync(localStorage.autostartApps)) {
fs.mkdirSync(localStorage.autostartApps)
}
fs.writeFileSync(localStorage.autostartApps + this.appName + '.desktop', desktopFile)
} catch (err) {
logger.error('StartupApps Save App', err)
showMessage('Operation not successfully', 'error')
} finally {
this.cancelPrompt()
}
} else {
showMessage('Do not leave required fields blank.', 'error')
}
},
cancelPrompt() {
this.showPrompt = false
this.appName = this.appComment = this.appExec = ''
this.modeEdit= false
},
getApps() {
fs.readdir(localStorage.autostartApps, (err, files) => {
if (!err) {
this.apps.splice(0, this.apps.length) // array clear
files.filter(file => file.endsWith('.desktop')).forEach(file => {
try {
var entry = properties(localStorage.autostartApps + '/' + file)
if (entry.get('Desktop Entry.Name') != null) {
let appName = entry.get('Desktop Entry.Name')
let isStart = entry.get('Desktop Entry.X-GNOME-Autostart-enabled')
let appComment = entry.get('Desktop Entry.Comment')
let appExec = entry.get('Desktop Entry.Exec')
if (appName != null) {
this.apps.push({
name: appName,
Exec:appExec,
comment:appComment,
file: file,
isStart: (isStart != null ? isStart : true)
})
}
}
} catch (error) {
logger.error('StartupApps Get Apps', error)
}
})
} else {
logger.error('StartupApps Read Directory', err)
}
})
},
editApp(name){
this.modeEdit = true
for(let app of this.apps){
if(app.name == name){
this.appName = app.name
this.appExec = app.Exec
this.appComment = app.comment
this.showPrompt = true
break;
}
}
}
}
}

View File

@@ -1,10 +0,0 @@
export default {
template: `<li>
<label>
<slot></slot>
<i></i>
<span :title="text + '(' + length + ')'"> {{text}} ({{length}}) </span>
</label>
</li>`,
props: ['length', 'text']
}

View File

@@ -1,285 +0,0 @@
import {
spawn
} from 'child_process'
import {
command,
showMessage,
formatBytes
} from '../../utils/helpers'
import fs from 'fs'
import sudo from 'sudo-prompt'
// Components
import SidebarItem from './SidebarItem'
import TableTitle from './TableTitle'
import TableItems from './TableItems'
export default {
template: `<transition name="slide-fade">
<div class="content">
<slot></slot>
<div class="cleaner-side">
<ul>
<sidebar-item :text="lang('packageCache')" :length="pkgCachesList.length">
<input type="checkbox" v-model:checked="pkgCacheSelect">
</sidebar-item>
<sidebar-item :text="lang('crashReports')" :length="crashReportsList.length">
<input type="checkbox" v-model:checked="crashReportsSelect">
</sidebar-item>
<sidebar-item :text="lang('systemLogs')" :length="systemLogsList.length">
<input type="checkbox" v-model:checked="systemLogsSelect">
</sidebar-item>
<sidebar-item :text="lang('appCache')" :length="appCachesList.length">
<input type="checkbox" v-model:checked="appCacheSelect">
</sidebar-item>
<sidebar-item :text="lang('trash')" :length="trashSize">
<input type="checkbox" v-model:checked="trashSelect">
</sidebar-item>
</ul>
<input type="button" id="system-scan-btn" @click="systemScan" :value="lang('systemScan')" />
</div>
<div class="item-table scroll">
<ul>
<table-title :text="lang('packageCache')" :length="pkgCachesList.length">
<input type="checkbox" @change="checkAllPkgCaches">
</table-title>
<table-items v-for="item in pkgCachesList" :text="item">
<input type="checkbox" :value="item" v-model="checkedPkgCaches">
</table-items>
<table-title :text="lang('crashReports')" :length="crashReportsList.length">
<input type="checkbox" @change="checkAllCrashReports">
</table-title>
<table-items v-for="item in crashReportsList" :text="item">
<input type="checkbox" :value="item" v-model="checkedCrashReports">
</table-items>
<table-title :text="lang('systemLogs')" :length="systemLogsList.length">
<input type="checkbox" @change="checkAllSystemLogs">
</table-title>
<table-items v-for="item in systemLogsList" :text="item">
<input type="checkbox" :value="item" v-model="checkedSystemLogs">
</table-items>
<table-title :text="lang('appCache')" :length="appCachesList.length">
<input type="checkbox" @change="checkAllAppCaches">
</table-title>
<table-items v-for="item in appCachesList" :text="item">
<input type="checkbox" :value="item" v-model="checkedAppCaches">
</table-items>
</ul>
</div>
<input type="button" id="clean-btn" @click="systemClean" :value="lang('clean')" />
</div>
</div>
</transition>`,
components: {
'sidebar-item': SidebarItem,
'table-title': TableTitle,
'table-items': TableItems
},
data() {
return {
pkgCacheSelect: false,
crashReportsSelect: false,
systemLogsSelect: false,
appCacheSelect: false,
trashSelect: false,
pkgCachesList: [],
crashReportsList: [],
systemLogsList: [],
appCachesList: [],
checkedPkgCaches: [],
checkedCrashReports: [],
checkedSystemLogs: [],
checkedAppCaches: [],
trashSize: '0 Bytes'
}
},
methods: {
systemScan() {
// Lists cleaning
this.pkgCachesList = []
this.crashReportsList = []
this.systemLogsList = []
this.appCachesList = []
this.trashSize = '0 Bytes'
if (this.pkgCacheSelect) {
fs.readdir(localStorage.pkgCachePath, 'utf8', (err, files) => {
if (!err)
files.filter(file => file)
.forEach(file => {
let stat = fs.statSync(localStorage.pkgCachePath + file)
if (stat.isFile())
this.pkgCachesList.push(file)
})
else
logger.error('System Cleaner Get Package Caches', err)
})
} else {
this.checkedPkgCaches = []
}
if (this.crashReportsSelect) {
fs.readdir(localStorage.crashReportsPath, 'utf8', (err, files) => {
if (!err)
files.forEach(file => this.crashReportsList.push(file))
else
logger.error('System Cleaner Get Crash Reports', err)
})
} else {
this.checkedCrashReports = []
}
if (this.systemLogsSelect) {
fs.readdir(localStorage.systemLogsPath, 'utf8', (err, files) => {
if (!err)
files.forEach(file => this.systemLogsList.push(file))
else
logger.error('System Cleaner Get System Logs', err)
})
} else {
this.checkedSystemLogs = []
}
if (this.appCacheSelect) {
fs.readdir(localStorage.appCachePath, 'utf8', (err, files) => {
if (!err)
files.forEach(file => this.appCachesList.push(file))
else
logger.error('System Cleaner Get App Caches', err)
})
} else {
this.checkedAppCaches = []
}
if (this.trashSelect) {
function getSize(path = '') {
path += '/'
let totalSize = 0
try {
let trashFiles = fs.readdirSync(localStorage.trashPath + path)
trashFiles.forEach(fileName => {
let stats = fs.statSync(localStorage.trashPath + path + fileName)
if (!stats.isDirectory())
totalSize += stats.size
else
totalSize += getSize(path + fileName)
})
} catch (err) {
logger.error('System Cleaner Get Trash Size', err)
}
return totalSize
}
if (fs.existsSync(localStorage.trashPath))
this.trashSize = formatBytes(getSize(), 0)
}
},
// System clean
systemClean() {
let filesToRemove = ''
if (this.checkedPkgCaches) {
this.checkedPkgCaches.forEach(file => {
filesToRemove += `rm -rf ${localStorage.pkgCachePath}${file}; `
})
}
if (this.checkedCrashReports) {
this.checkedCrashReports.forEach(file => {
filesToRemove += `rm -rf ${localStorage.crashReportsPath}${file}; `
})
}
if (this.checkedSystemLogs) {
this.checkedSystemLogs.forEach(file => {
filesToRemove += `rm -rf ${localStorage.systemLogsPath}${file}; `
})
}
if (this.checkedAppCaches) {
this.checkedAppCaches.forEach(file => {
filesToRemove += `rm -rf ${localStorage.appCachePath}${file}; `
})
}
if (this.trashSelect) {
filesToRemove += `rm -rf ${localStorage.trashPath};`
filesToRemove += `rm -rf ${localStorage.trashInfoPath};`
}
if (filesToRemove) {
sudo.exec(command(filesToRemove), {
name: 'Stacer'
},
(error, stdout, stderr) => {
if (stderr) {
showMessage(lang('sysCleanFail'), 'error')
logger.error('System Cleaner Files Remove', err)
}
else {
this.pkgCachesList = this.pkgCachesList.filter(item => this.checkedPkgCaches.indexOf(item) == -1)
this.crashReportsList = this.crashReportsList.filter(item => this.checkedCrashReports.indexOf(item) == -1)
this.systemLogsList = this.systemLogsList.filter(item => this.checkedSystemLogs.indexOf(item) == -1)
this.appCachesList = this.appCachesList.filter(item => this.checkedAppCaches.indexOf(item) == -1)
this.checkedPkgCaches = []
this.checkedCrashReports = []
this.checkedSystemLogs = []
this.checkedAppCaches = []
this.trashSize = '0 Bytes'
showMessage(lang('sysCleanSuc'), 'success')
}
})
}
},
// Check all items
checkAllPkgCaches(e) {
this.checkedPkgCaches = []
if (e.target.checked)
this.checkedPkgCaches.push(...this.pkgCachesList)
},
checkAllCrashReports(e) {
this.checkedCrashReports = []
if (e.target.checked)
this.checkedCrashReports.push(...this.crashReportsList)
},
checkAllSystemLogs(e) {
this.checkedSystemLogs = []
if (e.target.checked)
this.checkedSystemLogs.push(...this.systemLogsList)
},
checkAllAppCaches(e) {
this.checkedAppCaches = []
if (e.target.checked)
this.checkedAppCaches.push(...this.appCachesList)
}
},
watch: {
appCacheSelect: checked => {
if (checked)
showMessage(lang('appCacheWarning'), 'warning')
}
}
}

View File

@@ -1,10 +0,0 @@
export default {
template: `<li>
<label>
<slot></slot>
<i></i>
<span> {{ text }} </span>
</label>
</li>`,
props: ['text']
}

View File

@@ -1,10 +0,0 @@
export default {
template: `<h3 v-show="length">
<label>
<slot></slot>
<i></i>
<span>{{ lang('selectAll') }} ({{text}})</span>
</label>
</h3>`,
props: ['length', 'text']
}

View File

@@ -1,104 +0,0 @@
import {
spawnSync
} from 'child_process'
import sudo from 'sudo-prompt'
import {
command,
showMessage
} from '../../utils/helpers'
export default {
template: `<transition name="slide-fade">
<div class="content">
<slot></slot>
<div class="item-list uninstaller-list">
<div class="fl w100">
<h3 class="fl">{{ lang('uninstallerTitle') }} ({{ filteredPackages.length }})</h3>
<div class="spin-loader fl" v-show="isBusy">
<div class="dot1"></div>
<div class="dot2"></div>
<div class="dot3"></div>
<div class="dot4"></div>
</div>
<input type="text" v-model="searchString" :placeholder="lang('search') + '...'" />
</div>
<ul v-show="filteredPackages.length" class="scroll">
<li v-for="package in filteredPackages">
<input type ="checkbox" :value="package" :id="'p_' + package" v-model="selectedPackages"/>
<label :for="'p_' + package"></label>
{{ package }}
</li>
</ul>
<span class="empty-list" v-show="! filteredPackages.length">
{{ lang('noPackage') }}
</span>
<button :disabled="selectedPackages.length > 0 ? false : true" id="uninstall-selected" @click="uninstallSelected">
{{ lang('uninstallSelecteds') }}
</button>
</div>
</div>
</transition>`,
data() {
return ({
packagesList: [],
selectedPackages: [],
searchString: '',
isBusy: false
})
},
created() {
const packages = spawnSync('bash', ['-c', localStorage.getInstalledPackages])
if (packages.stderr)
logger.error('Uninstaller Get Packages', packages.stderr.toString())
let data = packages.stdout.toString().split('\n').filter(s => s != '')
this.packagesList.push(...data)
},
methods: {
uninstallSelected() {
if (this.selectedPackages) {
if (!this.isBusy) {
this.isBusy = true
let sPackages = this.selectedPackages.join(' ')
sudo.exec(command(localStorage.removePackage + sPackages), {
name: 'Stacer'
},
(error, stdout, stderr) => {
if (stderr) {
logger.error('Uninstaller Uninstall Selected', stderr)
showMessage(lang('uninstallFail'), 'error')
} else {
this.packagesList = this.packagesList
.filter(p => this.selectedPackages.indexOf(p) === -1)
showMessage(sPackages.split(' ').join('<br/>').concat('<br/>') + lang('packageUninstalled'), 'success')
this.searchString = ''
}
this.isBusy = false
this.selectedPackages = []
})
} else {
showMessage(lang('anotherProc'), 'error')
}
}
}
},
computed: {
filteredPackages() {
let tempPackagesList = this.packagesList,
searchString = this.searchString
if (!searchString) return tempPackagesList
searchString = searchString.toString().trim().toLowerCase()
return tempPackagesList.filter(item =>
item.trim().toLowerCase().indexOf(searchString) !== -1
)
}
}
}

View File

@@ -1,36 +0,0 @@
import App from './components/App'
import Language from './languages/Language'
import config from './utils/config'
import winston from 'winston'
const userData = require('electron').remote.app.getPath('userData')
window.vm = new Vue({
el: 'app',
components: {
'app': App
},
beforeCreate() {
// Set configs
config()
// Check Language
let appLanguage = localStorage.appLanguage || 'en'
let language = new Language(appLanguage)
window.lang = (key) => language.get(key)
// Check Theme
let appTheme = localStorage.appTheme || 'dark'
document.body.classList = [appTheme]
// Logger settings
window.logger = new(winston.Logger)({
transports: [
new(winston.transports.File)({
filename: userData + '/stacer.log'
})
]
})
},
mounted() {
setTimeout(() => document.getElementById('loading').remove(), 2500)
}
})

View File

@@ -1,15 +0,0 @@
import langList from './lang-list'
export default class Language {
constructor(lang) {
if (Object.keys(langList).indexOf(lang) !== -1) {
this.lang = require(`./langs/lang.${lang}`)
} else {
this.lang = require('./langs/lang.en')
}
}
get(key) {
return this.lang.default[key]
}
}

View File

@@ -1,22 +0,0 @@
export default {
"ar": "العربية",
"ca-es": "Catalan",
"cs": "Czech",
"de": "Deutsch (German)",
"en": "English",
"es": "Spanish",
"fa": "Persian",
"fr": "French",
"hu": "Hungarian",
"it": "Italiano",
"kan": "Kannada",
"oc": "Occitan",
"pl": "Polish",
"pt": "Portuguese",
"ru": "Russian",
"sv": "Swedish",
"tr": "Turkish",
"uk": "Ukrainian",
"zh-cn": "Chinese Simplified",
"zh-tw": "Traditional Chinese",
}

View File

@@ -1,81 +0,0 @@
/**
Adrian Feld <adrian@feldorado.de>
*/
export default {
// Top Menu
dashboard: "Dashboard",
sysCleaner: "System Cleaner",
startupApps: "Startup Apps",
services: "Dienste",
process: "Prozesse",
uninstaller: "Uninstaller",
resources: "Ressourcen",
// Dashboard Page
cpu: "CPU",
memory: "SPEICHER",
disk: "DISK",
download: "DOWNLOAD",
upload: "UPLOAD",
systemInfo: "SYSTEM INFO",
hostname: "Hostname",
platform: "Platform",
distribution: "Distribution",
kernelRel: "Kernel Release",
cpuModel: "CPU Model",
cpuSpeed: "CPU Speed",
cpuCores: "CPU Cores",
// System Cleaner Page
packageCache: "Package Cache",
crashReports: "Crash Reports",
systemLogs: "System Logs",
appCache: "App Cache",
trash: "Trash",
systemScan: "System Scan",
clean: "Säubern",
selectAll: "Alles auswählen",
// Startup Apps Page
startupTitle: "System Startup Applikationen",
addStartup: "Hinzufügen Autostart",
noStartup: "Keine Autostart Programme gefunden.",
app: "Applikation",
appName: "App Name",
appComment: "App Kommentar",
appCommand: "Befehl",
add: "Hinzufügen",
cancel: "Abbruch",
// Services Page
serviceTitle: "System Services",
noService: "Kein Service gefunden",
// Process Page
endProcess: "End Process",
refresh: "aktualisieren",
// Uninstaller Page
uninstallerTitle: "System Installed Packages",
noPackage: "Kein Paket gefunden.",
uninstallSelecteds: "Uninstall Gewählte",
// Resources Page
cpuHistory: "CPU Verlauf",
memHistory: "Speicher Verlauf",
networkHistory: "Netzwerk Verlauf",
swap: "Swap",
// Settings
settings: "Einstellungen",
appSettings: "Programm Einstellungen",
appLanguage: "App Sprache",
appTheme: "App Theme",
// Global
search: "Suche",
downloadUpdate: "Download Update",
updateMsg: "Es sind aktuelle Updates verfügbar.",
// Messages
opFail: "Operation failed.",
sysCleanFail: "System reingung fehlgeschlagen.",
sysCleanSuc: "System gereinigt.",
appCacheWarning: "Lösche Applikationen \' caches can cause problems. Please be careful.",
uninstallFail: "Deinstallation fehlgeschlagen.",
packageUninstalled: " Pakete deinstalliert.",
anotherProc: "Ein weiterer Prozess läuft.",
changedLang: "Restart the program for the changes to take effect.",
permitted: 'Operation unzulässig.',
update: 'Update'
}

View File

@@ -1,81 +0,0 @@
/**
AUTHOR <email@address>
*/
export default {
// Top Menu
dashboard: "لوحة التحكم",
sysCleaner: "مُنظّف النظام",
startupApps: "تطبيقات بدء التشغيل",
services: "الخدمات",
process: "العمليات",
uninstaller: "لاغِي التثبيت",
resources: "الموارد",
// Dashboard Page
cpu: "المعالج",
memory: "الذاكرة المؤقتة",
disk: "القرص الصلب",
download: "تحميل",
upload: "رفع",
systemInfo: "معلومات النظام",
hostname: "أسم المضيف",
platform: "المنصة",
distribution: "التوزيعة",
kernelRel: "إصدار النواة",
cpuModel: "نوع المعالج",
cpuSpeed: "سرعة المعالج",
cpuCores: "أنوية المعالج",
// System Cleaner Page
packageCache: "ذاكرة التخزين المؤقتة للحزم",
crashReports: "تقارير الأعطال",
systemLogs: "سجلات النظام",
appCache: "ذاكرة التخزين المؤقتة للتطبيقات",
trash: "النفاية",
systemScan: "فحص النظام",
clean: "تنظيف",
selectAll: "تحديد الكل",
// Startup Apps Page
startupTitle: "تطبيقات بدء التشغيل للنظام",
addStartup: "إضافة برنامج لقائمة بدء التشغيل",
noStartup: "لم يتم العثور على أية تطبيقات بدء تشغيل.",
app: "التطبيق",
appName: "اسم التطبيق",
appComment: "تعليق حول التطبيق",
appCommand: "الأمر",
add: "إضافة",
cancel: "إلغاء",
// Services Page
serviceTitle: "خدمات النظام",
noService: "لم يتم العثور على أية خدمة.",
// Process Page
endProcess: "إنهاء العملية",
refresh: "تحديث",
// Uninstaller Page
uninstallerTitle: "حزم النظام المثبتة",
noPackage: "لم يتم العثور على أية حزم.",
uninstallSelecteds: "الغاء تثبيت المحدد.",
// Resources Page
cpuHistory: "سجل المعالج",
memHistory: "سجل الذاكرة المؤقتة",
networkHistory: "سجل الشبكة",
swap: "المُبدل",
// Settings
settings: "الإعدادات",
appSettings: "إعدادات التطبيق",
appLanguage: "لغة التطبيق",
appTheme: "نسق التطبيق",
// Global
search: "البحث",
downloadUpdate: "تحميل التحديث",
updateMsg: "هناك تحديثات متوفرة حاليًا.",
// Messages
opFail: "فشلت العملية.",
sysCleanFail: "فشل تنظيف النظام.",
sysCleanSuc: "تم تنظيف النظام بنجاح.",
appCacheWarning: "حذف الملفات المخبئة\' للتطبيقات قد يسبب مشكلة. كُن حذرًا.",
uninstallFail: "فشل إلغاء التثبيت.",
packageUninstalled: " حزم حُذفت.",
anotherProc: "عملية اخرى مستمرة.",
changedLang: "أعد تشغيل البرنامج حتى تصبح التغييرات نافذة المفعول.",
permitted: 'عملية غير مسموحة.',
update: 'تحديث'
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <email@address>
*/
export default {
// Top Menu
dashboard: "Panell de control",
sysCleaner: "Netejador del sistema",
startupApps: "Aplicacions d'inici",
services: "Serveis",
process: "Processos",
uninstaller: "Desinstalador",
resources: "Recursos",
// Dashboard Page
cpu: "CPU",
memory: "MEMÒRIA",
disk: "DISC",
download: "BAIXADA",
upload: "PUJADA",
systemInfo: "INFORMACIÓ DEL SISTEMA",
hostname: "Nom de l'amfitrió",
platform: "Platforma",
distribution: "Distributió",
kernelRel: "Versió del nucli",
cpuModel: "Model de CPU",
cpuSpeed: "Velocitat de la CPU",
cpuCores: "Nuclis de la CPU",
// System Cleaner Page
packageCache: "Paquet de memòria cau",
crashReports: "Informes de fallida",
systemLogs: "Registres del sistema",
appCache: "Memòria cau d'aplicacions",
trash: "Paperera",
systemScan: "Escaneig del sistema",
clean: "Neteja",
selectAll: "Selecciona-ho tot",
// Startup Apps Page
startupTitle: "Aplicacions d'inici del sistema",
addStartup: "Afegeix una aplicació d'inici",
noStartup: "No s'ha trobat cap aplicació d'inici.",
app: "Aplicació",
appName: "Nom de l'aplicació",
appComment: "Comentari de l'aplicació",
appCommand: "Ordre",
add: "Afegeix",
cancel: "Cancel·la",
// Services Page
serviceTitle: "Serveis del sistema",
noService: "No s'ha trobat cap servei",
// Process Page
endProcess: "Finalitza el procés",
refresh: "Actualitza",
// Uninstaller Page
uninstallerTitle: "Paquets instal·lats del sistema",
noPackage: "No s'ha trobat cap paquet.",
uninstallSelecteds: "Desinstal·la els seleccionats",
// Resources Page
cpuHistory: "Històric de la CPU",
memHistory: "Històric de la memòria",
networkHistory: "Històric de la xarxa",
swap: "Memòria d'intercanvi",
// Settings
settings: "Configuració",
appSettings: "Configuració de l'aplicació",
appLanguage: "Idioma de l'aplicació",
appTheme: "Tema de l'aplicació",
// Global
search: "Cerca",
downloadUpdate: "Baixa l'actualització",
updateMsg: "Hi ha actualitzacions disponibles.",
// Messages
opFail: "Operació fallida.",
sysCleanFail: "La neteja del sistema ha fallat.",
sysCleanSuc: "S'ha netejat el sistema.",
appCacheWarning: "L'eliminació de la memòria cau de les aplicacions pot causar problemes. Aneu amb compte.",
uninstallFail: "Desinstal·lació fallida.",
packageUninstalled: " paquets desinstal·lats.",
anotherProc: "Un altre procés continua.",
changedLang: "Reinicieu el programa perquè els canvis tinguin efecte.",
permitted: 'Operació no permesa.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <pavel@tizek.cz>
*/
export default {
// Top Menu
dashboard: "Přehled",
sysCleaner: "Systémový čistič",
startupApps: "Po spuštění",
services: "Služby",
process: "Procesy",
uninstaller: "Odinstalovat",
resources: "Zdroje",
// Dashboard Page
cpu: "CPU",
memory: "PAMĚŤ",
disk: "DISK",
download: "STAHOVÁNÍ",
upload: "NAHRÁVÁNÍ",
systemInfo: "SYSTÉMOVÉ INFORMACE",
hostname: "Zařízení",
platform: "Platforma",
distribution: "Distribuce",
kernelRel: "Verze kernelu",
cpuModel: "Procesor",
cpuSpeed: "Frekvence CPU",
cpuCores: "CPU jádra",
// System Cleaner Page
packageCache: "Cache balíků",
crashReports: "Záznamy pádů",
systemLogs: "Systémový log",
appCache: "Cache aplikací",
trash: "Koš",
systemScan: "Skenovat",
clean: "Vyčistit",
selectAll: "Vybrat vše",
// Startup Apps Page
startupTitle: "Aplikace po spuštění",
addStartup: "Přidat aplikaci",
noStartup: "Žádná aplikace po spuštění.",
app: "Aplikace",
appName: "Název aplikace",
appComment: "Komentář",
appCommand: "Příkaz",
add: "Přidat",
cancel: "Zrušit",
// Services Page
serviceTitle: "Systémové služby",
noService: "Žádná služba nenalezena",
// Process Page
endProcess: "Ukončit proces",
refresh: "Obnovit",
// Uninstaller Page
uninstallerTitle: "Systémové aplikace",
noPackage: "Žádná aplikace nenalezena.",
uninstallSelecteds: "Odinstalovat vybrané",
// Resources Page
cpuHistory: "Historie procesoru",
memHistory: "Historie paměti",
networkHistory: "Historie sítě",
swap: "Swap",
// Settings
settings: "Nastavení",
appSettings: "Nastavení aplikace",
appLanguage: "Jazyk aplikace",
appTheme: "Téma aplikace",
// Global
search: "Hledat",
downloadUpdate: "Stáhnout aktualizaci",
updateMsg: "Máte nejnovější verzi.",
// Messages
opFail: "Operace selhala.",
sysCleanFail: "Čištění systému selhalo.",
sysCleanSuc: "Systém vyčištěn.",
appCacheWarning: "Mazáný cache aplikací může způsobit problémy. Buďte opatrní.",
uninstallFail: "Odinstalace selhala.",
packageUninstalled: " balíků odinstalováno.",
anotherProc: "Právě běží jiný proces.",
changedLang: "Restartujte aplikaci pro načtení změn.",
permitted: 'Operace zamítnuta.',
}

View File

@@ -1,81 +0,0 @@
/**
AUTHOR <email@address>
*/
export default {
// Top Menu
dashboard: "Dashboard",
sysCleaner: "System Cleaner",
startupApps: "Startup Apps",
services: "Services",
process: "Processes",
uninstaller: "Uninstaller",
resources: "Resources",
// Dashboard Page
cpu: "CPU",
memory: "MEMORY",
disk: "DISK",
download: "DOWNLOAD",
upload: "UPLOAD",
systemInfo: "SYSTEM INFO",
hostname: "Hostname",
platform: "Platform",
distribution: "Distribution",
kernelRel: "Kernel Release",
cpuModel: "CPU Model",
cpuSpeed: "CPU Speed",
cpuCores: "CPU Cores",
// System Cleaner Page
packageCache: "Package Cache",
crashReports: "Crash Reports",
systemLogs: "System Logs",
appCache: "App Cache",
trash: "Trash",
systemScan: "System Scan",
clean: "Clean",
selectAll: "Select All",
// Startup Apps Page
startupTitle: "System Startup Applications",
addStartup: "Add Startup App",
noStartup: "No startup apps found.",
app: "Application",
appName: "App Name",
appComment: "App Comment",
appCommand: "Command",
add: "Add",
cancel: "Cancel",
// Services Page
serviceTitle: "System Services",
noService: "No Service Found",
// Process Page
endProcess: "End Process",
refresh: "Refresh",
// Uninstaller Page
uninstallerTitle: "System Installed Packages",
noPackage: "No package found.",
uninstallSelecteds: "Uninstall Selecteds",
// Resources Page
cpuHistory: "CPU History",
memHistory: "Memory History",
networkHistory: "Network History",
swap: "Swap",
// Settings
settings: "Settings",
appSettings: "Application Settings",
appLanguage: "App Language",
appTheme: "App Theme",
// Global
search: "Search",
downloadUpdate: "Download Update",
updateMsg: "There are updates currently available.",
// Messages
opFail: "Operation failed.",
sysCleanFail: "System cleaning failed.",
sysCleanSuc: "System cleaned.",
appCacheWarning: "Deleting applications\' caches can cause problems. Please be careful.",
uninstallFail: "Uninstall failed.",
packageUninstalled: " packages uninstalled.",
anotherProc: "Another process continues.",
changedLang: "Restart the program for the changes to take effect.",
permitted: 'Operation not permitted.',
update: 'Update'
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <email@address>
*/
export default {
// Top Menu
dashboard: "Panel de instrumentos",
sysCleaner: "Limpiador del Sistema",
startupApps: "Aplicaciones de inicio",
services: "Servicios",
process: "Proceso",
uninstaller: "Desinstalador",
resources: "Recursos",
// Dashboard Page
cpu: "CPU",
memory: "MEMORIA",
disk: "DISCO",
download: "DESCARGAR",
upload: "ENVÍOS",
systemInfo: "INFORMACIÓN DEL SISTEMA",
hostname: "Nombre de host",
platform: "Plataforma",
distribution: "Distribución",
kernelRel: "Versión del kernel",
cpuModel: "Modelo de CPU",
cpuSpeed: "Cpu Speed",
cpuCores: "Cpu Cores",
// System Cleaner Page
packageCache: "Cache Package",
crashReports: "Informes de fallos",
systemLogs: "Sistema Logs",
appCache: "App Cache",
trash: "Basura",
systemScan: "Análisis del Sistemas",
clean: "Limpiar",
selectAll: "Seleccionar Todo",
// Startup Apps Page
startupTitle: "Aplicaciones en el inicio del sistema",
addStartup: "Añadir una aplicación de inicio",
noStartup: "No se encontra aplicaciones de inicio.",
app: "Aplicación",
appName: "Nombre de l'App",
appComment: "Comentario de l'App",
appCommand: "Commando",
add: "Añadir",
cancel: "Anular",
// Services Page
serviceTitle: "Servicios del Sistema",
noService: "No se encuentra servicio",
// Process Page
endProcess: "Proceso Final",
refresh: "Refresco",
// Uninstaller Page
uninstallerTitle: "Paquetes instalado en el sistema",
noPackage: "No se encontró paquetes.",
uninstallSelecteds: "Desinstalación Seleccionada",
// Resources Page
cpuHistory: "Actividades Cpu",
memHistory: "Actividades Mémoire",
networkHistory: "Actividades Internet",
swap: "Swap",
// Settings
settings: "Opciones",
appSettings: "Configuración de la Aplicación",
appLanguage: "Lengua App",
appTheme: "Tema App",
// Global
search: "Buscar",
downloadUpdate: "Descargar la actualización",
updateMsg: "Actualmente hay actualizaciones disponibles.",
// Messages
opFail: "La operación ha fallado.",
sysCleanFail: "Limpieza del sistema ha fallado.",
sysCleanSuc: "Sistema Limpiado.",
appCacheWarning: "Eliminación de aplicaciones\' Caches pueden causar problemas. Por favor, tenga cuidado.",
uninstallFail: "Desinstalación falló.",
packageUninstalled: " Paquetes desinstalados.",
anotherProc: "Otro proceso está abierto.",
changedLang: "Reiniciar el programa para que los cambios surtan efecto.",
permitted: 'Transacción no autorizada.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <neonramzy@aol.com>
*/
export default {
// Top Menu
dashboard: "داشبورد",
sysCleaner: "پاکسازی سیستم",
startupApps: "برنامه های استارت آپ",
services: "سرویس ها",
process: "پردازش ها",
uninstaller: "حذف برنامه ها",
resources: "منابع",
// Dashboard Page
cpu: "پردازنده",
memory: "حافظه",
disk: "دیسک",
download: "دریافت",
upload: "ارسال",
systemInfo: "اطلاعات سیستم",
hostname: "نام میزبان",
platform: "سکوی پردارشی",
distribution: "توزیع",
kernelRel: "نسخه کرنل",
cpuModel: "نسخه پردازنده",
cpuSpeed: "سرعت پردازنده",
cpuCores: " هسته های پردازنده",
// System Cleaner Page
packageCache: "حافظه نهان بسته",
crashReports: "گزارشات کرش",
systemLogs: "گزارشات سیستم",
appCache: "حافظه نهان برنامه",
trash: "سطل زباله",
systemScan: "بررسی سیستم",
clean: "پاکسازی",
selectAll: "انتخاب همه",
// Startup Apps Page
startupTitle: "برنامه های استارت آپ سیستم",
addStartup: "افزودن برنامه در استارآپ",
noStartup: "برنامه ای در استارت آپ وجود ندارد",
app: "برنامه",
appName: "نام برنامه",
appComment: "توضیح برنامه",
appCommand: "دستور",
add: "افزودن",
cancel: "لغو",
// Services Page
serviceTitle: "سرویس های سیستم",
noService: "سرویسی پیدا نشد",
// Process Page
endProcess: "پایان پردازش",
refresh: "بازخوانی",
// Uninstaller Page
uninstallerTitle: "بسته های نصب شده سیستم",
noPackage: "بسته ای پیدا نشد.",
uninstallSelecteds: "حذف انتخاب شده ها",
// Resources Page
cpuHistory: "تاریخچه پردازنده",
memHistory: "تاریخچه حافظه",
networkHistory: "تاریخچه شبکه",
swap: "سواپ",
// Settings
settings: "تنظیمات",
appSettings: "تنظیمات برنامه",
appLanguage: "زبان برنامه",
appTheme: "تم برنامه",
// Global
search: "جستجو",
downloadUpdate: "دریافت بروزرسانی",
updateMsg: "اماده ی بروزرسانی",
// Messages
opFail: "عملیات ناموفق",
sysCleanFail: "پاکسازی سیستم ناموفق",
sysCleanSuc: " پاکسازی سیستم انجام شد",
appCacheWarning: "ممکن است پاکسازی حافظه نهان مشکلاتی ایجاد کند،مراقب باشید",
uninstallFail: "حذف ناموفق",
packageUninstalled: " بسته حذف شد",
anotherProc: "پردازش دیگری فعال است",
changedLang: "برای اعمال تغییرات،مجددا برنامه را راه اندازی کنید",
permitted: 'عملیات مجاز نیست',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <email@address>
*/
export default {
// Top Menu
dashboard: "Tableau de bord",
sysCleaner: "Nettoyeur Système",
startupApps: "Applications au démarrage",
services: "Services",
process: "Processus",
uninstaller: "Désinstalleur",
resources: "Ressources",
// Dashboard Page
cpu: "CPU",
memory: "MÉMOIRE",
disk: "DISQUE",
download: "TÉLÉCHARGEMENT",
upload: "TÉLÉVERSEMENT",
systemInfo: "INFORMATIONS SYSTÈME",
hostname: "Nom dHôte",
platform: "Plateforme",
distribution: "Distribution",
kernelRel: "Version du Noyau",
cpuModel: "Modèle du Processeur",
cpuSpeed: "Vitesse",
cpuCores: "Nombre de cœurs",
// System Cleaner Page
packageCache: "Cache des Paquets",
crashReports: "Rapport Derreurs",
systemLogs: "Journaux Système",
appCache: "Cache des applications",
trash: "Corbeille",
systemScan: "Analyse du système",
clean: "Nettoyer",
selectAll: "Tout Sélectionner",
// Startup Apps Page
startupTitle: "Applications au démarrage du système",
addStartup: "Ajouter une application au démarrage",
noStartup: "Aucune application au démarrage n'a été trouvée.",
app: "Application",
appName: "Nom",
appComment: "Commentaire",
appCommand: "Commande",
add: "Ajouter",
cancel: "Annuler",
// Services Page
serviceTitle: "Services Système",
noService: "Aucun service na pu être trouvé",
// Process Page
endProcess: "Stopper le Processus",
refresh: "Rafraîchir",
// Uninstaller Page
uninstallerTitle: "Paquets Installés sur le Système",
noPackage: "Aucun paquet na pu être trouvé.",
uninstallSelecteds: "Désinstaller les paquets sélectionnés",
// Resources Page
cpuHistory: "Activité du Processeur",
memHistory: "Activité de la Mémoire",
networkHistory: "Activité du Réseau",
swap: "Swap",
// Settings
settings: "Options",
appSettings: "Options de l'Application",
appLanguage: "Langue d'affichage",
appTheme: "Thème",
// Global
search: "Chercher",
downloadUpdate: "Télécharger la mise à jour",
updateMsg: "Il existe actuellement des mises à jour disponibles.",
// Messages
opFail: "L'opération a échoué.",
sysCleanFail: "Le nettoyage du système a échoué.",
sysCleanSuc: "Système nettoyé.",
appCacheWarning: "Supprimer le cache des applications peut pauser des problèmes dinstabilités, veuillez faire attention.",
uninstallFail: "La désinstallation a échoué.",
packageUninstalled: "Paquets désinstallés.",
anotherProc: "Un autre processus est en cours d'exécution.",
changedLang: "Redémarrez le programme pour que les modifications prennent effet.",
permitted: 'Opération non autorisée.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <sir.bence15@gmail.com>
*/
export default {
// Top Menu
dashboard: "Irányítópult",
sysCleaner: "Rendszer tisztító",
startupApps: "Automatikusan induló programok",
services: "Szolgáltatások",
process: "Folyamatok",
uninstaller: "Eltávolító",
resources: "Erőforrások",
// Dashboard Page
cpu: "CPU",
memory: "MEMÓRIA",
disk: "LEMEZ",
download: "LETÖLTÉS",
upload: "FELTÖLTÉS",
systemInfo: "RENDSZER INFORMÁCIÓ",
hostname: "Gépnév",
platform: "Környezet",
distribution: "Disztribúció",
kernelRel: "Kernel Verziója",
cpuModel: "Cpu Típusa",
cpuSpeed: "Cpu Sebessége",
cpuCores: "Cpu Magok",
// System Cleaner Page
packageCache: "Csomagok Gyorsítótárja",
crashReports: "Rendszerleállás Jelentések",
systemLogs: "Rendszer Jelentések",
appCache: "Alkalmazás Gyorsítótárja",
trash: "Kuka",
systemScan: "Rendszervizsgálat",
clean: "Tisztítás",
selectAll: "Összes kiválasztása",
// Startup Apps Page
startupTitle: "Automatikusan Induló Alkalmazások",
addStartup: "Automatikusan Induló alkalmazás hozzáadása",
noStartup: "Nem található automatikusan induló alkalmazás.",
app: "Alkalmazás",
appName: "Alkalmazás Neve",
appComment: "Alkalmazás Hozzászolás",
appCommand: "Parancs",
add: "Hozzáadás",
cancel: "Visszavonás",
// Services Page
serviceTitle: "Rendszer Szolgáltatások",
noService: "Nem Található Szolgáltatás",
// Process Page
endProcess: "Szolgáltatás Befejezése",
refresh: "Frissítés",
// Uninstaller Page
uninstallerTitle: "A Rendszerre Telepítette a Csomagok",
noPackage: "Nem Található csomag.",
uninstallSelecteds: "Kiválasztottak törlése",
// Resources Page
cpuHistory: "Cpu Előzmény",
memHistory: "Memória Előzmény",
networkHistory: "Hálózat Előzmény",
swap: "Lapozófájl",
// Settings
settings: "Beállítások",
appSettings: "Alkalmazás Beállításai",
appLanguage: "Alkalmazás Nyelve",
appTheme: "Alkalmazás Témája",
// Global
search: "Keresés",
downloadUpdate: "Frissítés Letöltése",
updateMsg: "Jelenleg nem elérhető új frissítés.",
// Messages
opFail: "Sikertelen művelet.",
sysCleanFail: "Sikertelen rendszer tisztítás.",
sysCleanSuc: "Rendszer kitisztítva.",
appCacheWarning: "Alkalmazás letörlése\' Gyorsítótár okozhat problémát. Kérem legyen óvatos.",
uninstallFail: "Sikertelen törlés.",
packageUninstalled: " csomagok letörölve.",
anotherProc: "Másik folyamat folytatódik.",
changedLang: "Indítsa újra a programot, hogy életbe lépjenek a frissítések.",
permitted: 'Művelet nem engedélyezett.',
}

View File

@@ -1,81 +0,0 @@
/**
AUTHOR Patrick Barattin <p.barattin@gmail.com>
*/
export default {
// Top Menu
dashboard: "Panenllo di controllo",
sysCleaner: "Pulizia del sistema",
startupApps: "Applicazioni all'avvio",
services: "Servizi",
process: "Processsi",
uninstaller: "Disinstalla",
resources: "Risorse",
// Dashboard Page
cpu: "CPU",
memory: "MEMORIA",
disk: "DISCO",
download: "DOWNLOAD",
upload: "UPLOAD",
systemInfo: "INFO DI SISTEMA",
hostname: "Nome dispositivo",
platform: "Piattaforma",
distribution: "Distribuzoine",
kernelRel: "Versione del Kernel",
cpuModel: "Moedllo CPU",
cpuSpeed: "Velocità CPU",
cpuCores: "CPU Cores",
// System Cleaner Page
packageCache: "Pacchetti in cache",
crashReports: "Reporti dei crash",
systemLogs: "Logs di sistema",
appCache: "Cache dei programmi",
trash: "Cestino",
systemScan: "Analisi di sistema",
clean: "Pulisci",
selectAll: "Seleziona tutti",
// Startup Apps Page
startupTitle: "Programmi all'avvio del sistema",
addStartup: "Aggiungi programma",
noStartup: "Non è stato trovato nessun programma all'avvio",
app: "Programmi",
appName: "Nome Progrmmma",
appComment: "Commento del programma",
appCommand: "Comando",
add: "Aggiungi",
cancel: "Cancella",
// Services Page
serviceTitle: "Servizi di sistema",
noService: "Nessun servizio trovato",
// Process Page
endProcess: "Fine Processo",
refresh: "Ricarica",
// Uninstaller Page
uninstallerTitle: "Pacchetti di sistema installati",
noPackage: "Nessun pacchetto trovato",
uninstallSelecteds: "Disinstalla selezionati",
// Resources Page
cpuHistory: "Grafico CPU",
memHistory: "Grafico Memoria",
networkHistory: "Grafico Rete",
swap: "Swap",
// Settings
settings: "Impostazioni",
appSettings: "Impostazioni",
appLanguage: "Lingua",
appTheme: "Tema",
// Global
search: "Ricerca",
downloadUpdate: "Scarica aggioranmenti",
updateMsg: "Ci sono degli aggiornamenti disponibili",
// Messages
opFail: "Operazione fallita",
sysCleanFail: "Pulizia del sistema fallita",
sysCleanSuc: "Sistema pulito",
appCacheWarning: "L\'eliminazione della cache può essere pericolosa, state attenti",
uninstallFail: "Disinstallazione fallita",
packageUninstalled: "Pacchetto disintallato",
anotherProc: "Un\'altro processo è in esecuzione",
changedLang: "Riavvia il programma per vedere le modifiche",
permitted: 'Operazione non permessa',
update: 'Aggiornamento'
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <vinyasns@gmail.com>
*/
export default {
// Top Menu
dashboard: "ಡ್ಯಾಶ್ಬೋರ್ಡ್",
sysCleaner: "ಸಿಸ್ಟಮ್ ಕ್ಲೀನರ್",
startupApps: "ಆರಂಭಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳು",
services: "ಸೇವೆಗಳು",
process: "ಪ್ರಕ್ರಿಯೆ",
uninstaller: "ಅಸ್ಥಾಪನೆಗಾರ",
resources: "ಸಂಪನ್ಮೂಲಗಳು",
// Dashboard Page
cpu: "ಕೇಂದ್ರ ಸಂಸ್ಕರಣ ಘಟಕ",
memory: "ಸ್ಮೃತಿ",
disk: "ಡಿಸ್ಕ್",
download: "ಡೌನ್‌ಲೋಡ್",
upload: "ಅಪ್‌ಲೋಡ್",
systemInfo: "ಸಿಸ್ಟಮ್ ಮಾಹಿತಿ",
hostname: "ಹೋಸ್ಟ್ ಹೆಸರು",
platform: "ವೇದಿಕೆ",
distribution: "ವಿತರಣೆ",
kernelRel: "ಕರ್ನಲ್ ಬಿಡುಗಡೆ",
cpuModel: "ಸಿಪಿಯು ಮಾದರಿ",
cpuSpeed: "ಸಿಪಿಯು ವೇಗ",
cpuCores: "ಸಿಪಿಯು ಕೋರ್ಗಳು",
// System Cleaner Page
packageCache: "ಪ್ಯಾಕೇಜ್ ಸಂಗ್ರಹ",
crashReports: "ಕ್ರ್ಯಾಶ್ ವರದಿಗಳು",
systemLogs: "ಸಿಸ್ಟಮ್ ದಾಖಲೆಗಳು",
appCache: "ಅಪ್ಲಿಕೇಶನ್ ಸಂಗ್ರಹ",
trash: "ಅನುಪಯುಕ್ತ",
systemScan: "ಸಿಸ್ಟಮ್ ಸ್ಕ್ಯಾನ್",
clean: "ಸ್ವಚ್ಛಗೊಳಿಸಿ",
selectAll: "ಎಲ್ಲವನ್ನು ಆರಿಸು",
// Startup Apps Page
startupTitle: "ಸಿಸ್ಟಮ್ ಆರಂಭಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳು",
addStartup: "ಆರಂಭಿಕ ಅಪ್ಲಿಕೇಶನ್ ಸೇರಿಸಿ",
noStartup: "ಆರಂಭಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಂಡುಬಂದಿಲ್ಲ.",
app: "ಅಪ್ಲಿಕೇಶನ್",
appName: "ಅಪ್ಲಿಕೇಶನ್ ಹೆಸರು",
appComment: "ಅಪ್ಲಿಕೇಶನ್ ಟಿಪ್ಪಣಿ",
appCommand: "ಆದೇಶ",
add: "ಸೇರಿಸಿ",
cancel: "ರದ್ದುಮಾಡಿ",
// Services Page
serviceTitle: "ಸಿಸ್ಟಮ್ ಸೇವೆಗಳು",
noService: "ಯಾವುದೇ ಸೇವೆ ಕಂಡುಬಂದಿಲ್ಲ",
// Process Page
endProcess: "ಪ್ರಕ್ರಿಯೆ ಕೊನೆಗೊಳಿಸಿ",
refresh: "ರಿಫ್ರೆಶ್",
// Uninstaller Page
uninstallerTitle: "ಸಿಸ್ಟಮ್ ಅನುಸ್ಥಾಪಿಸಲಾದ ಪ್ಯಾಕೇಜುಗಳು",
noPackage: "ಯಾವುದೇ ಪ್ಯಾಕೇಜ್ ಕಂಡುಬಂದಿಲ್ಲ.",
uninstallSelecteds: "ಆಯ್ಕೆಮಾಡಿದನ್ನು ಅಸ್ಥಾಪಿಸು",
// Resources Page
cpuHistory: "ಸಿಪಿಯು ಇತಿಹಾಸ",
memHistory: "ಸ್ಮೃತಿ ಇತಿಹಾಸ",
networkHistory: "ನೆಟ್ವರ್ಕ್ ಇತಿಹಾಸ",
swap: "ವಿನಿಮಯ",
// Settings
settings: "ಸೆಟ್ಟಿಂಗ್ಗಳು",
appSettings: "ಅಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಗಳು",
appLanguage: "ಅಪ್ಲಿಕೇಶನ್ ಭಾಷೆ",
appTheme: "ಅಪ್ಲಿಕೇಶನ್ ಥೀಮ್",
// Global
search: "ಹುಡುಕು",
downloadUpdate: "ನವೀಕರಣವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ",
updateMsg: "ನವೀಕರಣಗಳು ಪ್ರಸ್ತುತ ಲಭ್ಯವಿವೆ.",
// Messages
opFail: "ಕಾರ್ಯಾಚರಣೆ ವಿಫಲವಾಗಿದೆ.",
sysCleanFail: "ಸಿಸ್ಟಮ್ ಶುಚಿಗೊಳಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ.",
sysCleanSuc: "ಸಿಸ್ಟಮ್ ಸ್ವಚ್ಛಗೊಳಿಸಲಾಗಿದೆ.",
appCacheWarning: "ಅಪ್ಲಿಕೇಶನ್ ಸಂಗ್ರಹವನ್ನು ಅಳಿಸುವುದರಿಂದ ಸಮಸ್ಯೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು. ದಯವಿಟ್ಟು ಎಚ್ಚರದಿಂದಿರಿ.",
uninstallFail: "ಅಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ.",
packageUninstalled: " ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಸ್ಥಾಪಿಸಲಾಗಿದೆ.",
anotherProc: "ಮತ್ತೊಂದು ಪ್ರಕ್ರಿಯೆಯು ಮುಂದುವರಿಯುತ್ತದೆ.",
changedLang: "ಬದಲಾವಣೆಗಳನ್ನು ಜಾರಿಗೆ ತರಲು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.",
permitted: 'ಆಪರೇಷನ್ ಅನುಮತಿಸಲಾಗಿಲ್ಲ.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <email@address>
*/
export default {
// Top Menu
dashboard: "Panèl de configuracion",
sysCleaner: "Netejador sistèma",
startupApps: "Aplicacions a l'aviada",
services: "Servicis",
process: "Processús",
uninstaller: "Desinstallador",
resources: "Ressorsas",
// Dashboard Page
cpu: "CPU",
memory: "MEMÒRIA",
disk: "DISC",
download: "TELECARGAMENT",
upload: "MANDADÍS",
systemInfo: "INFORMACIONS SISTÈMA",
hostname: "Nom dÒste",
platform: "Plataforma",
distribution: "Distribucion",
kernelRel: "Version del nucli",
cpuModel: "Modèl del Processor",
cpuSpeed: "Velocitat",
cpuCores: "Nombre de còrs",
// System Cleaner Page
packageCache: "Escondedor dels paquets",
crashReports: "Rapòrt derrors",
systemLogs: "Jornals sistèma",
appCache: "Escondedor de las aplicacions",
trash: "Banasta",
systemScan: "Analisi del sistèma",
clean: "Netejar",
selectAll: "Seleccionar tot",
// Startup Apps Page
startupTitle: "Aplicacions a l'aviada del sistèma",
addStartup: "Ajustar una aplicacion a l'aviada",
noStartup: "Cap aplicacion a l'aviada pas trobada.",
app: "Aplicacion",
appName: "Nom",
appComment: "Comentari",
appCommand: "Comanda",
add: "Ajustar",
cancel: "Anullar",
// Services Page
serviceTitle: "Servicis sistèma",
noService: "Cap servici sistèma trobat",
// Process Page
endProcess: "Arrestar lo processús",
refresh: "Actualizar",
// Uninstaller Page
uninstallerTitle: "Paquets installats sul sistèma",
noPackage: "Cap paquet pas trobat.",
uninstallSelecteds: "Desinstallar los paquets seleccionats",
// Resources Page
cpuHistory: "Activitat del processor",
memHistory: "Activitat de la memòria",
networkHistory: "Activitat de la ret",
swap: "Memòria de cambi",
// Settings
settings: "Paramètres",
appSettings: "Opcions de l'aplicacion",
appLanguage: "Lenga de l'aplicacion",
appTheme: "Tèma",
// Global
search: "Cercar",
downloadUpdate: "Telecargar la mesa a jorn",
updateMsg: "I a de mesas a jorn disponiblas.",
// Messages
opFail: "L'operacion a fach mèuca.",
sysCleanFail: "La netejada del sistèma a fracassat.",
sysCleanSuc: "Sistèma netejat.",
appCacheWarning: "Suprimir l'escondedor de las aplicacion pòt causar de problèmas, mèfi amb aquò.",
uninstallFail: "La desinstallacion a fracassat.",
packageUninstalled: "Paquets desinstallats.",
anotherProc: "Un autre processús es a s'executar.",
changedLang: "Reaviatz lo programa per aplicar los cambiaments.",
permitted: 'Operacion pas autorizada.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR AngryPenguin <angrypenguinpoland@gmail.com>
*/
export default {
// Top Menu
dashboard: "Deska Rozdzielcza",
sysCleaner: "Czyszczenie Systemu",
startupApps: "Aplikacje startowe",
services: "Usługi",
process: "Procesy",
uninstaller: "Deinstalator",
resources: "Zasoby",
// Dashboard Page
cpu: "PROCESOR",
memory: "PAMIĘĆ RAM",
disk: "DYSK",
download: "POBIERANIE",
upload: "WYSYŁANIE",
systemInfo: "INFORMACJE O SYSTEMIE",
hostname: "Nazwa hosta",
platform: "Platforma",
distribution: "Dystrybucja",
kernelRel: "Wydanie jądra Linux",
cpuModel: "Model Cpu",
cpuSpeed: "Zegar Cpu",
cpuCores: "Rdzenie Cpu",
// System Cleaner Page
packageCache: "Pamięć podręczna pakietów",
crashReports: "Raporty błędów",
systemLogs: "Logi systemowe",
appCache: "Pamięć podręczna aplikacji",
trash: "Kosz",
systemScan: "Skanuj System",
clean: "Wyczyść",
selectAll: "Zaznacz wszystko",
// Startup Apps Page
startupTitle: "Systemowe aplikacje startowe",
addStartup: "Dodaj aplikację startową",
noStartup: "Nie znaleziono aplikacji startowych.",
app: "Aplikacje",
appName: "Nazwa aplikacji",
appComment: "Komentarz do aplikacji",
appCommand: "Polecenie",
add: "Dodaj",
cancel: "Anuluj",
// Services Page
serviceTitle: "Usługi Systemowe",
noService: "Nie znaleziono usług",
// Process Page
endProcess: "Zakończ proces",
refresh: "Odśwież",
// Uninstaller Page
uninstallerTitle: "Zainstalowane pakiety w systemie",
noPackage: "Nie znaleziono pakietu.",
uninstallSelecteds: "Odinstaluj zaznaczone",
// Resources Page
cpuHistory: "Historia użycia Cpu",
memHistory: "Historia użycia pamięci",
networkHistory: "Historia użycia internetu",
swap: "Swap",
// Settings
settings: "Ustawienia",
appSettings: "Ustawienia aplikacji",
appLanguage: "Język aplikacji",
appTheme: "Motyw aplikacji",
// Global
search: "Wyszukaj",
downloadUpdate: "Pobierz aktualizację",
updateMsg: "Są dostępne nowe aktualizacje.",
// Messages
opFail: "Operacja zakończona niepowodzeniem.",
sysCleanFail: "Czyszczenie systemu nieudane.",
sysCleanSuc: "System oczyszczony.",
appCacheWarning: "Usuwanie aplikacji\' pamięci podręcznej może powodować problemy. Proszę bądź ostrożny.",
uninstallFail: "Usuwanie nieudane.",
packageUninstalled: " pakiety usunięte.",
anotherProc: "Kolejny proces trwa.",
changedLang: "Uruchom ponownie program aby wprowadzone zmiany odniosły efekt.",
permitted: 'Operacja niedozwolona.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <email@address>
*/
export default {
// Top Menu
dashboard: "Visão Geral",
sysCleaner: "Limpador do sistema",
startupApps: "Aplicativos de inicialização",
services: "Serviços",
process: "Processos",
uninstaller: "Desinstalador",
resources: "Recursos",
// Dashboard Page
cpu: "CPU",
memory: "MEMÓRIA",
disk: "DISCO",
download: "DOWNLOAD",
upload: "UPLOAD",
systemInfo: "INFORMAÇÃO DO SISTEMA",
hostname: "Nome de usuário",
platform: "Plataforma",
distribution: "Distribuição",
kernelRel: "Lançamento do kernel",
cpuModel: "Modelo do processador",
cpuSpeed: "Velocidade do processador",
cpuCores: "Núcleos do processador",
// System Cleaner Page
packageCache: "Cache do pacote",
crashReports: "Relatórios de falha",
systemLogs: "Registros do sistema",
appCache: "Cache de aplicativos",
trash: "Lixo",
systemScan: "Verificação do sistema",
clean: "Limpar",
selectAll: "Selecionar tudo",
// Startup Apps Page
startupTitle: "Aplicativos de inicialização do sistema",
addStartup: "Adicionar Aplicativo",
noStartup: "Nenhum aplicativo de inicialização foi encontrado.",
app: "Aplicação",
appName: "Nome do aplicativo",
appComment: "Descrição do aplicativo",
appCommand: "Comando",
add: "Adicionar",
cancel: "Cancelar",
// Services Page
serviceTitle: "Serviços do sistema",
noService: "Nenhum serviço encontrado.",
// Process Page
endProcess: "Finalizar processo",
refresh: "Atualizar",
// Uninstaller Page
uninstallerTitle: "Pacotes instalados do sistema",
noPackage: "Nenhum pacote encontrado.",
uninstallSelecteds: "Desinstalar selecionados",
// Resources Page
cpuHistory: "Histórico do processador",
memHistory: "Histórico da memória",
networkHistory: "Histórico da rede",
swap: "Trocar",
// Settings
settings: "Configurações",
appSettings: "Configuraçes do aplicativo",
appLanguage: "Linguagem",
appTheme: "Tema",
// Global
search: "Pesquisar",
downloadUpdate: "Baixar atualização",
updateMsg: "Há atualizações disponíveis.",
// Messages
opFail: "Operação falhou.",
sysCleanFail: "A limpeza do sistema falhou.",
sysCleanSuc: "Sistema limpo.",
appCacheWarning: "A exclusão de caches de aplicativos pode causar problemas. Por favor, preste atenção.",
uninstallFail: "A desinstalação falhou.",
packageUninstalled: " pacote desinstalado.",
anotherProc: "Outro processo continua.",
changedLang: "Reinicie o programa para que as alterações se concretizem.",
permitted: 'Operação não permitida.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR BrainStorm <brainstorm@programist.ru>
*/
export default {
// Top Menu
dashboard: "Панель управления",
sysCleaner: "Очистка системы",
startupApps: "Автозагрузка",
services: "Службы",
process: "Процессы",
uninstaller: "Удаление программ",
resources: "Ресурсы",
// Dashboard Page
cpu: "ЦП",
memory: "ПАМЯТЬ",
disk: "ДИСК",
download: "ЗАГРУЗКА",
upload: "ОТДАЧА",
systemInfo: "ИНФОРМАЦИЯ О СИСТЕМЕ",
hostname: "Имя хоста",
platform: "Платформа",
distribution: "Дистрибутив",
kernelRel: "Версия ядра",
cpuModel: "Модель ЦП",
cpuSpeed: "Скорость ЦП",
cpuCores: "Ядра ЦП",
// System Cleaner Page
packageCache: "Кэш пакетов",
crashReports: "Отчеты о падении",
systemLogs: "Системные журналы",
appCache: "Кэш приложений",
trash: "Корзина",
systemScan: "Проверка системы",
clean: "Очистить",
selectAll: "Выбрать все",
// Startup Apps Page
startupTitle: "Автозагрузка приложений",
addStartup: "Добавить приложение в автозагрузку",
noStartup: "Ни одного приложения в автозагрузке не найдено.",
app: "Приложение",
appName: "Имя приложения",
appComment: "Комментарий приложения",
appCommand: "Комманда",
add: "Добавить",
cancel: "Отмена",
// Services Page
serviceTitle: "Системные службы",
noService: "Ни одной системной службы не найдено",
// Process Page
endProcess: "Завершить процесс",
refresh: "Обновить",
// Uninstaller Page
uninstallerTitle: "Установленные системные пакеты",
noPackage: "Ни одного пакета не найдено.",
uninstallSelecteds: "Удалить выбранные",
// Resources Page
cpuHistory: "История ЦП",
memHistory: "История памяти",
networkHistory: "История сети",
swap: "Своп",
// Settings
settings: "Параметры",
appSettings: "Параметры приложения",
appLanguage: "Язык",
appTheme: "Тема оформления",
// Global
search: "Поиск",
downloadUpdate: "Проверить обновления",
updateMsg: "Доступны обновления приложения.",
// Messages
opFail: "Операция не выполнена.",
sysCleanFail: "Очистка системы не выполнена.",
sysCleanSuc: "Система очищена.",
appCacheWarning: "Удаление кэша приложения может вызвать проблемы. Будьте осторожны.",
uninstallFail: "Удаление не выполнено.",
packageUninstalled: " пакетов удалено.",
anotherProc: "Выполняется другой процесс.",
changedLang: "Перезапустите программу для вступления в силу изменений.",
permitted: 'Операция не разрешена.',
}

View File

@@ -1,81 +0,0 @@
/**
AUTHOR <ecn@ecn.se>
*/
export default {
// Top Menu
dashboard: "Dashboard",
sysCleaner: "Systemrensare",
startupApps: "Uppstartsappar",
services: "Tjänster",
process: "Processer",
uninstaller: "Avinstallerare",
resources: "Resurser",
// Dashboard Page
cpu: "CPU",
memory: "MINNE",
disk: "DISK",
download: "NERLADDNING",
upload: "UPPLADDNING",
systemInfo: "SYSTEM INFO",
hostname: "Värdnamn",
platform: "Plattform",
distribution: "Distribution",
kernelRel: "Kernelutgåva",
cpuModel: "CPU-modell",
cpuSpeed: "CPU-hastighet",
cpuCores: "CPU-kärnor",
// System Cleaner Page
packageCache: "Packetcache",
crashReports: "Kraschrapporter",
systemLogs: "Systemloggar",
appCache: "Appcache",
trash: "Skräp",
systemScan: "Systemskanning",
clean: "Rensa",
selectAll: "Välj alla",
// Startup Apps Page
startupTitle: "Systemets uppstartsapplikationer",
addStartup: "Lägg till uppstartsapp",
noStartup: "Inga uppstartsappar funna.",
app: "Program",
appName: "Appnamn",
appComment: "Appkommentar",
appCommand: "Kommando",
add: "Lägg till",
cancel: "Avbryt",
// Services Page
serviceTitle: "Systemtjänster",
noService: "Inga tjänster funna.",
// Process Page
endProcess: "Avsluta process",
refresh: "Uppdateras",
// Uninstaller Page
uninstallerTitle: "System Installed Packages",
noPackage: "No package found.",
uninstallSelecteds: "Uninstall Selecteds",
// Resources Page
cpuHistory: "CPU-historik",
memHistory: "Minneshistorik",
networkHistory: "Nätverkshistorik",
swap: "Swap",
// Settings
settings: "Inställningar",
appSettings: "Appikationsinställningar",
appLanguage: "Applikationsspråk",
appTheme: "Applikationstema",
// Global
search: "Sök",
downloadUpdate: "Ladda ner uppdatering",
updateMsg: "Det finns förnärvarande tillgängliga uppdateringar.",
// Messages
opFail: "Operation misslyckades.",
sysCleanFail: "Systemrensning misslyckades.",
sysCleanSuc: "System rensat.",
appCacheWarning: "Ta bort applikationscache kan medföra problem. Var försiktig.",
uninstallFail: "Avinstallation misslyckades.",
packageUninstalled: " paket avinstallerade.",
anotherProc: "En annan process fortsätter.",
changedLang: "Starta om programmet för att ändringarna ska börja gälla.",
permitted: 'Operationen är inte tillåten.',
update: 'Uppdatera'
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <email@address>
*/
export default {
// Top Menu
dashboard: "Başlangıç",
sysCleaner: "Sistem Temizleyici",
startupApps: "Başlangıç Uygulamaları",
services: "Servisler",
process: "Süreçler",
uninstaller: "Kaldırıcı",
resources: "Kaynaklar",
// Dashboard Page
cpu: "CPU",
memory: "BELLEK",
disk: "DİSK",
download: "İNDİRME",
upload: "YÜKLEME",
systemInfo: "SİSTEM BİLGİSİ",
hostname: "Hostname",
platform: "Platform",
distribution: "Dağıtım",
kernelRel: "Çekirdek Sürümü",
cpuModel: "Cpu Modeli",
cpuSpeed: "Cpu Hızı",
cpuCores: "Cpu Çekirdek",
// System Cleaner Page
packageCache: "Paket Önbelleği",
crashReports: "Hata Raporları",
systemLogs: "Sistem Günlükleri",
appCache: "Uygulama Önbelleği",
trash: "Çöp Kutusu",
systemScan: "Sistemi Tara",
clean: "Temizle",
selectAll: "Hepsini Seç",
// Startup Apps Page
startupTitle: "Sistem Başlangıç Uygulamaları",
addStartup: "Başlangıç Uygulaması Ekle",
noStartup: "Başlangıç Uygulaması Bulunamadı.",
app: "Uygulama",
appName: "Uygulama Adı",
appComment: "Uygulama Yorumu",
appCommand: "Komut",
add: "Ekle",
cancel: "İptal",
// Services Page
serviceTitle: "Sistem Servisleri",
noService: "Servis Bulunamadı.",
// Process Page
endProcess: "Süreci Sonlandır",
refresh: "Yenile",
// Uninstaller Page
uninstallerTitle: "Sistemdeki Yüklü Paketler",
noPackage: "Paket Bulunamadı.",
uninstallSelecteds: "Seçilenleri Kaldır",
// Resources Page
cpuHistory: "Cpu Geçmişi",
memHistory: "Bellek Geçmişi",
networkHistory: "Ağ Geçmişi",
swap: "Takas",
// Settings
settings: "Ayarlar",
appSettings: "Uygulama Ayarları",
appLanguage: "Uygulama Dili",
appTheme: "Uygulama Tema",
// Global
search: "Arama",
downloadUpdate: "Güncellemeyi İndir",
updateMsg: "Mevcut yeni güncelleme var.",
// Messages
opFail: "İşlem başarısız.",
sysCleanFail: "Sistem temizleme başarısız.",
sysCleanSuc: "Sistem temizlendi.",
appCacheWarning: "Uygulamaların önbelleklerini silmek sorunlara neden olabilir. Lütfen dikkatli olun.",
uninstallFail: "Kaldırma başarısız.",
packageUninstalled: " paketleri kaldırıldı.",
anotherProc: "Başka işlem devam ediyor.",
changedLang: "Değişikliklerin aktif olması için programı yeniden başlatın.",
permitted: 'İşleme izin verilmedi.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR of Ukrainian translation <vpaslavskyi@gmail.com>
*/
export default {
// Top Menu
dashboard: "Панель Приладів",
sysCleaner: "Очистка Системи",
startupApps: "Початкові Додатки",
services: "Сервіси",
process: "Процеси",
uninstaller: "Видалення Програм",
resources: "Ресурси",
// Dashboard Page
cpu: "ЦП",
memory: "ПАМʼЯТЬ",
disk: "ДИСК",
download: "ЗАВАНТАЖЕННЯ",
upload: "ВІДВАНТАЖЕННЯ",
systemInfo: "СИСТЕМНА ІНФОРМАЦІЯ",
hostname: "Ім'я хосту",
platform: "Платформа",
distribution: "Дистрибутив",
kernelRel: "Випуск ядра",
cpuModel: "Модель ЦП",
cpuSpeed: "Швидкість ЦП",
cpuCores: "Ядра ЦП",
// System Cleaner Page
packageCache: "Кеш пакунків",
crashReports: "Аварійні звіти",
systemLogs: "Системні журнали",
appCache: "Кеш додатків",
trash: "Сміття",
systemScan: "Сканування системи",
clean: "Очистити",
selectAll: "Обрати Все",
// Startup Apps Page
startupTitle: "Початкові системні додатки",
addStartup: "Дадати початковий додаток",
noStartup: "Жодних початкових програм не знайдено.",
app: "Додатки",
appName: "Ім'я додатку",
appComment: "Коментар додатку",
appCommand: "Команда",
add: "Додати",
cancel: "Відміна",
// Services Page
serviceTitle: "Системні Сервіси",
noService: "Не знайдено жодного сервісу",
// Process Page
endProcess: "Кінець Процесу",
refresh: "Оновити",
// Uninstaller Page
uninstallerTitle: "Встановлені Системні Пакунки",
noPackage: "Не знайдено жодного пакунку.",
uninstallSelecteds: "Видалити Обране",
// Resources Page
cpuHistory: "Історія ЦП",
memHistory: "Історія Пам'яті",
networkHistory: "Історія Мережі",
swap: "Своп",
// Settings
settings: "Налаштування",
appSettings: "Налаштування Додатків",
appLanguage: "Мова додатку",
appTheme: "Тема Додатку",
// Global
search: "Пошук",
downloadUpdate: "Завантажити Оновлення",
updateMsg: "Присутні Оновлення Додатку.",
// Messages
opFail: "Операція не вдалась.",
sysCleanFail: "Очищення Системи не вдалось.",
sysCleanSuc: "Система очищена.",
appCacheWarning: "Киш видалених додатків може призвести до проблем. Будь ласка, будьте обережні.",
uninstallFail: "Видалення не вдалось.",
packageUninstalled: " пакунки видалені.",
anotherProc: "Продовжується інший процес.",
changedLang: "Для вступу в дію оновлень, необхідне перезавантаження програми.",
permitted: 'Операція не дозволяється.',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <yunlonglin1995@gmail.com>
*/
export default {
// Top Menu
dashboard: "仪表板",
sysCleaner: "系统清理",
startupApps: "开机启动",
services: "服务",
process: "程序",
uninstaller: "移除应用程序",
resources: "系统资源",
// Dashboard Page
cpu: "CPU",
memory: "内存",
disk: "硬盘",
download: "下载",
upload: "上传",
systemInfo: "系统信息",
hostname: "系统名称",
platform: "平台",
distribution: "系统版本",
kernelRel: "Kernel 版本",
cpuModel: "Cpu Model",
cpuSpeed: "Cpu 频率",
cpuCores: "Cpu 核心数",
// System Cleaner Page
packageCache: "应用程序缓存",
crashReports: "崩溃报告",
systemLogs: "系统日志",
appCache: "App 缓存",
trash: "回收站",
systemScan: "扫描系统",
clean: "移除",
selectAll: "全选",
// Startup Apps Page
startupTitle: "系统开机启动程序",
addStartup: "添加开机启动程序",
noStartup: "没有发现开机启动程序",
app: "应用程序",
appName: "名称",
appComment: "简介",
appCommand: "命令",
add: "添加",
cancel: "取消",
// Services Page
serviceTitle: "系统服务",
noService: "没有发现系统服务",
// Process Page
endProcess: "结束程序",
refresh: "刷新",
// Uninstaller Page
uninstallerTitle: "系统已安装程序",
noPackage: "没有发现应用程序",
uninstallSelecteds: "卸载所选程序",
// Resources Page
cpuHistory: "Cpu 历史",
memHistory: "内存历史",
networkHistory: "网络历史",
swap: "交换",
// Settings
settings: "设置",
appSettings: "程序设置",
appLanguage: "选择语言",
appTheme: "外观主题",
// Global
search: "搜索",
downloadUpdate: "下载更新",
updateMsg: "目前有更新可供下载",
// Messages
opFail: "操作失敗",
sysCleanFail: "系统清理失敗",
sysCleanSuc: "系统清理成功",
appCacheWarning: "请注意,刪除应用程序缓存可能会造成其他问题",
uninstallFail: "卸载失败",
packageUninstalled: " 已卸载",
anotherProc: "其他进程继续运行",
changedLang: "请重启程序使更改的内容生效",
permitted: '不允许该操作',
}

View File

@@ -1,80 +0,0 @@
/**
AUTHOR <allenh@mail.nctu.edu.tw>
*/
export default {
// Top Menu
dashboard: "儀表板",
sysCleaner: "系統清理",
startupApps: "開機啟動",
services: "服務",
process: "程序",
uninstaller: "移除應用程式",
resources: "系統資源",
// Dashboard Page
cpu: "CPU",
memory: "記憶體",
disk: "硬碟",
download: "下載",
upload: "上傳",
systemInfo: "系統資訊",
hostname: "系統名稱",
platform: "平台",
distribution: "系統版本",
kernelRel: "Kernel 版本",
cpuModel: "Cpu Model",
cpuSpeed: "Cpu 時脈",
cpuCores: "Cpu 核心數",
// System Cleaner Page
packageCache: "應用程式快取",
crashReports: "當機報告",
systemLogs: "系統記錄",
appCache: "App 快取",
trash: "垃圾桶",
systemScan: "掃描系統",
clean: "移除",
selectAll: "全選",
// Startup Apps Page
startupTitle: "系統開機啟動程式",
addStartup: "新增開機啟動程式",
noStartup: "無任何開機啟動程式",
app: "應用程式",
appName: "名稱",
appComment: "註解",
appCommand: "指令",
add: "新增",
cancel: "取消",
// Services Page
serviceTitle: "系統服務",
noService: "無任何系統服務",
// Process Page
endProcess: "終止程序",
refresh: "重新整理",
// Uninstaller Page
uninstallerTitle: "系統已安裝程式",
noPackage: "無任何應用程式",
uninstallSelecteds: "移除選取項目",
// Resources Page
cpuHistory: "Cpu 記錄",
memHistory: "記憶體記錄",
networkHistory: "網路記錄",
swap: "Swap",
// Settings
settings: "設定",
appSettings: "程式設定",
appLanguage: "選擇語言",
appTheme: "外觀主題",
// Global
search: "搜尋",
downloadUpdate: "下載更新",
updateMsg: "目前有更新可供下載",
// Messages
opFail: "操作失敗",
sysCleanFail: "系統清理失敗",
sysCleanSuc: "系統清理成功",
appCacheWarning: "請留意,刪除應用程式快取可能會造成其他問題",
uninstallFail: "移除失敗",
packageUninstalled: " 已移除",
anotherProc: "另一程序繼續運作中",
changedLang: "請重新啟動程式使變更生效",
permitted: '不允許該項操作',
}

View File

@@ -1,59 +0,0 @@
import {
homedir
} from 'os'
import {
spawnSync
} from 'child_process'
export default () => {
// Set app configs
localStorage.crashReportsPath = "/var/crash/"
localStorage.systemLogsPath = "/var/log/"
localStorage.appCachePath = homedir() + "/.cache/"
localStorage.autostartApps = homedir() + "/.config/autostart/"
localStorage.getAllService = "systemctl list-unit-files --state=enabled,disabled --type=service | grep .service | cut -d ' ' -f1 | sed -e 's/.service//g' 2> /dev/null"
localStorage.trashPath = homedir() + "/.local/share/Trash/files"
localStorage.trashInfoPath = homedir() + "/.local/share/Trash/info"
// Package management settings
var pm = localStorage.packageManagement
if (!pm) {
var dpkg = spawnSync('dpkg', ['--version'])
var rpm = spawnSync('rpm', ['--version'])
var pacman = spawnSync('pacman', ['--version'])
if (!dpkg.error)
localStorage.packageManagement = 'dpkg'
else if (!rpm.error)
localStorage.packageManagement = 'rpm'
else if (!pacman.error)
localStorage.packageManagement = 'pacman'
else
localStorage.packageManagement = 'dpkg'
switch (localStorage.packageManagement) {
case 'dpkg':
{
localStorage.pkgCachePath = "/var/cache/apt/archives/"
localStorage.getInstalledPackages = "dpkg --get-selections | grep -v deinstall | cut -f 1 2> /dev/null"
localStorage.removePackage = "dpkg -r "
}
break;
case 'rpm':
{
localStorage.pkgCachePath = ""
localStorage.getInstalledPackages = "rpm -qa 2> /dev/null"
localStorage.removePackage = "rpm --erase "
}
break;
case 'pacman':
{
localStorage.pkgCachePath = "/var/cache/pacman/pkg/"
localStorage.getInstalledPackages = "pacman -Q | cut -d ' ' -f 1 2> /dev/null"
localStorage.removePackage = "pacman -R --noconfirm "
}
break;
}
}
}

View File

@@ -1,45 +0,0 @@
import '../../libs/amaran.min'
exports.prettyMemSize = (size) => {
return (size / (Math.pow(1024, 3))).toFixed(2)
}
exports.prettyDiskSize = (size) => {
return (size / Math.pow(1000, 3)).toFixed(1)
}
exports.showMessage = (message, status) => {
let bgcolor
switch (status) {
case 'success':
bgcolor = '#27ae60';
break;
case 'error':
bgcolor = '#c0392b';
break;
default:
bgcolor = '#f39c12';
break;
}
$.amaran({
'theme': 'colorful',
'content': {
bgcolor: bgcolor,
message: message
},
'position': 'top right',
'outEffect': 'slideTop',
'delay': 5000
})
}
exports.command = (command) => `bash -c "${command}"`
exports.formatBytes = (bytes, decimals = 0) => {
if (bytes == 0) return '0 Bytes'
let k = 1024,
dm = decimals + 1 || 3,
sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
i = Math.floor(Math.log(bytes) / Math.log(k))
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]
}

2848
yarn.lock
View File

File diff suppressed because it is too large Load Diff