GithubHelp home page GithubHelp logo

alexandermichels / mintsetup Goto Github PK

View Code? Open in Web Editor NEW
5.0 0.0 1.0 477 KB

A GUI app to help you setup your Mint computer quickly with options for programming oriented users.

License: MIT License

Shell 2.97% Python 97.03%
linux-mint setup-script essential python3 setup-tool gui gui-application

mintsetup's Introduction

Mint Setup 2.0.1


MMMMMMMMMMMMMMMMMMMMMMMMMmds+.        
MMm----::-://////////////oymNMd+`     
MMd      /++                -sNMd:    
MMNso/`  dMM    `.::-. .-::.` .hMN:   
ddddMMh  dMM   :hNMNMNhNMNMNh: `NMm  
    NMm  dMM  .NMN/-+MMM+-/NMN` dMM            __  __ _       _   ____       _
    NMm  dMM  -MMm  `MMM   dMM. dMM           |  \/  (_)_ __ | |_/ ___|  ___| |_ _   _ _ __
    NMm  dMM  -MMm  `MMM   dMM. dMM           | |\/| | | '_ \| __\___ \ / _ \ __| | | | '_ \
    NMm  dMM  -MMm  `MMM   dMM. dMM           | |  | | | | | | |_ ___) |  __/ |_| |_| | |_) |   
    NMm  dMM  .mmd  `mmm   yMM. dMM           |_|  |_|_|_| |_|\__|____/ \___|\__|\__,_| .__/   
    NMm  dMM`  ..`   ...   ydm. dMM                                                   |_|    
    hMM- +MMd/-------...-:sdds  dMM   
    -NMm- :hNMNNNmdddddddddy/`  dMM   
     -dMNs-``-::::-------.``    dMM   
      `/dMNmy+/:-------------:/yMMM   
         ./ydNMMMMMMMMMMMMMMMMMMMMM
            \.MMMMMMMMMMMMMMMMMMM

Table of Contents

This is Python App to build a Bash script that will help you configure your Linux Mint computers with all of the applications you want in a single script. This is meant to be as general as possible (using your distro codename), but when I need to make a decision, I make it to work for the most recent version of Linux Mint Cinnamon, right now that is Linux Mint 19 "Tara" Cinnamon. The app gives you a wide variety of packages to choose from, pre-installed software to remove, and cleans up your setup in a quick and easy GUI.


Running the app is super simple, and you have three choices.

  • Bash Script to Execute Everything for You: Open a terminal in the directory where setup.py is and run the following command. This option tries to download Python 3 and all requirements first, and deletes the virtualenv it runs in. Optionally, you can also use the -d or --delete flags to have the script delete the entire directory when its done.
bash run.sh
bash run.sh -d
bash run.sh --delete
  • Make the Python Script Executable: Open a terminal in the directory where setup.py is and run the following command (to make it executable), then double click setup.py and hit "Run".
chmod +x setup.py
  • Run the Script in the Command Line: Open a terminal in the directory where setup.py is and run the following command
python3 setup.py

When you run the app, you'll see this screen:

Main Screen of GUI

You can navigate through the various tabs, checking boxes for things you'd like to install/uninstall. The "Git" page also has text boxes if you'd like to setup a git cache so you don't have to enter credentials as often.

Once you are ready, click the "MintSetup" button at the bottom. If you have any settings that are odd (like installing R packages without install R) a dialog will pop up. If everything is fine, you'll see the dialog below asking if you're ready to set up your computer:

Confirmation

Once you click yes, you're done! If you're running in the terminal, the script will notify you what is happening in real time:

AsciiArt


The commands.json file acts a huge dictionary that maps the appropriate software to the appropriate commands to install them. The Python3 app runs the GUI and records your choices, then uses this dictionary to compile all the necessary commands you need into a Bash script called your_setup.sh in the /bin folder. Feel free to check out your setup script there.

The app does a dist-upgrade and downloads cURL by default. Here is a full list of everything else you can download:

It's kind of like a version for Ubuntu-based OSs. You can find yours by running the following command in the terminal:

alias upstream-lsb="grep DISTRIB_CODENAME /etc/upstream-release/lsb-release | grep -o --colour=never \"[a-z-]*$\""

You also have the option to remove some of the pre-installed software:


GeneralizeRequirementDotTxt.py

Simple script to take a "requirements.txt" file and strip the specific versions from it. Below demonstrates what I mean by this with "example==9.3.4" being a typical entry in a "requirements.txt" file and "example" being the output from my script.

example==9.3.4 ---> example

If you want to bring over the Python packages you have installed, run the following command:

$ pip freeze > requirements.txt

For Python 2.X you probably want to probably want to prepend the command with "python -m" and for Python 3.X you would probably want "python3 -m".

  • 1.0.x : (March 17th, 2018 - September 11th, 2018) | Just one version to setup
  • 1.1.x : (September 12th, 2018 - November 24th, 2018) | Full and Lite versions
  • 1.2.x : (November 25th, 2018 - April 26th, 2019) | Added weekly scheduled updates
  • 2.0.x : (April 27th, 2019 - Present) | GUI added to customize installation

  • Add "on Hover" information about software in the GUI
  • Add more options
  • Add testing/automated testing/CI

mintsetup's People

Contributors

alexandermichels avatar cigitest avatar gothicvi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Forkers

kai47x

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.