aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2023-08-10 12:07:36 +0200
committersrdusr <trevorgray@srdusr.com>2023-08-10 12:07:36 +0200
commit685bfa93c12d309536751281a9b15d6cff41e648 (patch)
tree3d3ccb43fe888032197a307aab15378e6c657f29
parenta10d9d07d5cd719ce21b2faaef6e52db300ec9ce (diff)
downloaddotfiles-685bfa93c12d309536751281a9b15d6cff41e648.tar.gz
dotfiles-685bfa93c12d309536751281a9b15d6cff41e648.zip
Add cron job for gnome
-rw-r--r--README.md746
1 files changed, 441 insertions, 305 deletions
diff --git a/README.md b/README.md
index d446cdd..892c9fa 100644
--- a/README.md
+++ b/README.md
@@ -1,49 +1,97 @@
# Dotfiles
-> NOTE: Primarily for Linux but currently under work to make this as agnostic/cross-platform as possible
-
-## Installing onto a new system (bare git repository)
- 1. Avoid weird behaviour/recursion issues when .cfg tries to track itself
- ```bash
- $ echo ".cfg" >> .gitignore
- ```
- 2. Clone this repo
- ```bash
- $ git clone --bare https://github.com/srdusr/dotfiles.git $HOME/.cfg
- ```
- 3. Set up the alias 'config'
- ```bash
- $ alias config='git --git-dir=$HOME/.cfg --work-tree=$HOME'
- ```
- 4. Set local configuration into .cfg to ignore untracked files
- ```bash
- $ config config --local status.showUntrackedFiles no
- ```
- 5. Checkout
- ```bash
- $ config checkout
- ```
-- - -
-
-## Dependencies
+
+> NOTE: Primarily for Linux but currently under work to make this as agnostic/cross-platform as possible
+
+## Installing onto a new system (bare git repository)
+
+1. Avoid weird behaviour/recursion issues when .cfg tries to track itself
+
+```bash
+$ echo ".cfg" >> .gitignore
+```
+
+2. Clone this repo
+
+```bash
+$ git clone --bare https://github.com/srdusr/dotfiles.git $HOME/.cfg
+```
+
+3. Set up the alias 'config'
+
+```bash
+$ alias config='git --git-dir=$HOME/.cfg --work-tree=$HOME'
+```
+
+4. Set local configuration into .cfg to ignore untracked files
+
+```bash
+$ config config --local status.showUntrackedFiles no
+```
+
+5. Checkout
+
+```bash
+$ config checkout
+```
+
+---
+
+## Dependencies
+
- curl
-- git
-- clang
-- gcc
-- make
-- ninja
-- cmake
+- git
+- clang
+- gcc
+- make
+- ninja
+- cmake
- wmctrl
- xdo
- xdotool
-- ripgrep
-- fd
+- ripgrep
+- fd
- tmux
-- tree-sitter
-- vim
-- - -
+- tree-sitter
+- vim
+- zsh
+
+---
+
+### Fzf
+
+- Install Fzf
+
+```
+$ sudo git clone --depth 1 https://github.com/junegunn/fzf.git /usr/local/bin/fzf
+```
+
+- Put this into `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+
+```bash
+export PATH="$PATH:/usr/local/bin/fzf/bin"
+export FZF_BASE="/usr/local/bin/fzf"
+```
+
+- Also put this in to load fzf keybindings and completions
+
+```bash
+# bash
+source /usr/local/bin/fzf/shell/key-bindings.bash
+source /usr/local/bin/fzf/shell/completion.bash
+```
+
+```bash
+# zsh
+source /usr/local/bin/fzf/shell/key-bindings.zsh
+source /usr/local/bin/fzf/shell/completion.zsh
+```
+
+---
### Zsh plugins
-- Install the plugins
+
+- Install the plugins
+
```bash
# Clone zsh-you-should-use
$ git clone https://github.com/MichaelAquilina/zsh-you-should-use.git ~/.config/zsh/plugins/zsh-you-should-use
@@ -54,7 +102,9 @@ $ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.config/z
# Clone zsh-autosuggestions
$ git clone https://github.com/zsh-users/zsh-autosuggestions.git ~/.config/zsh/plugins/zsh-autosuggestions
```
-- Put this into `.zshrc` to allow it to source the plugins across sessions
+
+- Put this into `.zshrc` (preferably at the very end of the file) to allow it to source the plugins across sessions
+
```bash
# Suggest aliases for commands
source ~/.config/zsh/plugins/zsh-you-should-use/you-should-use.plugin.zsh
@@ -66,57 +116,57 @@ source ~/.config/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source ~/.config/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh
source ~/.config/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
```
-- - -
-### Fzf
-- Install Fzf
-```
-$ sudo git clone --depth 1 https://github.com/junegunn/fzf.git /usr/local/bin/fzf
-```
-- Put this into `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
-```bash
-export PATH="$PATH:/usr/local/bin/fzf/bin"
-export FZF_BASE="/usr/local/bin/fzf"
-```
-- Also put this in to load fzf keybindings and completions
+---
+
+### Wezterm
+
+- Make sure Rust is installed first
+
```bash
-# bash
-source /usr/local/bin/fzf/shell/key-bindings.bash
-source /usr/local/bin/fzf/shell/completion.bash
+$ curl https://sh.rustup.rs -sSf | sh -s
```
+
+- Install and build Wezterm
+
```bash
-# zsh
-source /usr/local/bin/fzf/shell/key-bindings.zsh
-source /usr/local/bin/fzf/shell/completion.zsh
+$ git clone --depth=1 --branch=main --recursive https://github.com/wez/wezterm.git
+$ cd wezterm
+$ git submodule update --init --recursive
+$ ./get-deps
+$ cargo build --release
+$ cargo run --release --bin wezterm -- start
```
-- - -
-### Neovim
+---
+
+### Neovim
+
> Dependencies
| Platform | ninja-build | ninja | base-devel | build-base | coreutils | gmake | cmake | make | gcc | g++ | gcc-c++ | unzip | wget | curl | gettext | gettext-tools | gettext-tiny-dev | automake | autoconf | libtool | libtool-bin | pkg-config | pkgconfig | pkgconf | tree-sitter | patch | doxygen | sha | git | Pack Manager |
-|--------------------|-------------|-------|------------|------------|-----------|-------|-------|------|-----|-----|---------|-------|------|------|---------|---------------|------------------|----------|----------|---------|-------------|------------|-----------|---------|-------------|-------|---------|-----|-----|--------------|
-| Ubuntu/Debian | ✓ | | | | | | ✓ | | | ✓ | | ✓ | | ✓ | ✓ | | | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | ✓ | | | apt-get |
-| CentOS/RHEL/Fedora | ✓ | | | | | | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | ✓ | | | ✓ | ✓ | ✓ | | | ✓ | | | ✓ | | | | dnf |
-| openSUSE | | ✓ | | | | | ✓ | | | | ✓ | | | ✓ | | ✓ | | ✓ | ✓ | ✓ | | | | | | | | | | zypper |
-| Arch Linux | | ✓ | ✓ | | | | ✓ | | | | | ✓ | | ✓ | | | | | | | | | | | ✓ | | | | | pacman |
-| Alpine Linux | | | | | ✓ | | ✓ | | | | | ✓ | | ✓ | | | ✓ | ✓ | ✓ | ✓ | | | | ✓ | | | | | | apk |
-| Void Linux | | | ✓ | ✓ | | | ✓ | | | | | | | ✓ | | | | | | | | | | | | | | | ✓ | xbps |
-| FreeBSD | | | | | | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | | | ✓ | | | | ✓ | | | | ✓ | | pkg |
-| OpenBSD | | | | | | ✓ | ✓ | | | | | ✓ | | ✓ | | ✓ | | ✓ | ✓ | ✓ | | | | | | | | | | pkg_add |
-| macOS/Homebrew | | ✓ | | | | | ✓ | | | | | | | ✓ | ✓ | | | ✓ | | ✓ | | ✓ | | | | | | | | brew |
-| macOS/MacPorts | | ✓ | | | | | ✓ | | | | | | | | ✓ | | | | | | | | | | | | | | | port |
+| ------------------ | ----------- | ----- | ---------- | ---------- | --------- | ----- | ----- | ---- | --- | --- | ------- | ----- | ---- | ---- | ------- | ------------- | ---------------- | -------- | -------- | ------- | ----------- | ---------- | --------- | ------- | ----------- | ----- | ------- | --- | --- | ------------ |
+| Ubuntu/Debian | ✓ | | | | | | ✓ | | | ✓ | | ✓ | | ✓ | ✓ | | | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | ✓ | | | apt-get |
+| CentOS/RHEL/Fedora | ✓ | | | | | | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | ✓ | | | ✓ | ✓ | ✓ | | | ✓ | | | ✓ | | | | dnf |
+| openSUSE | | ✓ | | | | | ✓ | | | | ✓ | | | ✓ | | ✓ | | ✓ | ✓ | ✓ | | | | | | | | | | zypper |
+| Arch Linux | | ✓ | ✓ | | | | ✓ | | | | | ✓ | | ✓ | | | | | | | | | | | ✓ | | | | | pacman |
+| Alpine Linux | | | | | ✓ | | ✓ | | | | | ✓ | | ✓ | | | ✓ | ✓ | ✓ | ✓ | | | | ✓ | | | | | | apk |
+| Void Linux | | | ✓ | ✓ | | | ✓ | | | | | | | ✓ | | | | | | | | | | | | | | | ✓ | xbps |
+| FreeBSD | | | | | | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | | | ✓ | | | | ✓ | | | | ✓ | | pkg |
+| OpenBSD | | | | | | ✓ | ✓ | | | | | ✓ | | ✓ | | ✓ | | ✓ | ✓ | ✓ | | | | | | | | | | pkg_add |
+| macOS/Homebrew | | ✓ | | | | | ✓ | | | | | | | ✓ | ✓ | | | ✓ | | ✓ | | ✓ | | | | | | | | brew |
+| macOS/MacPorts | | ✓ | | | | | ✓ | | | | | | | | ✓ | | | | | | | | | | | | | | | port |
- Install (default is nightly)
```bash
$ git clone https://github.com/neovim/neovim.git
$ cd neovim
```
- - Optional install stable version
+ - Optional install stable version
```bash
$ git checkout stable
```
- - Or a specific version by tag
+ - or specific version by tag
```bash
$ git checkout release-0.7
```
@@ -130,250 +180,328 @@ source /usr/local/bin/fzf/shell/completion.zsh
$ git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
```
+- Post-installation:
+ - Install plugins
+ ```vi
+ :PackerSync
+ ```
+ - or save/write on .config/nvim/lua/user/pack.lua to automatically install plugins
+ ```vi
+ :w
+ ```
+ - Install language servers
+ ```vi
+ :Mason
+ ```
+ - Exit out of Mason with `q`, configured language servers should then install automatically
+ > NOTE: If any errors occur, npm needs to be installed and executable, complete **_Development Environment/Languages/Javascript_** section to install nvm/npm
+ - Reload nvim/config with `<leader><space>` where `<leader>` is `;`
- Uninstall:
```bash
$ sudo rm /usr/local/bin/nvim
$ sudo rm -r /usr/local/share/nvim/
```
-- - -
-### Wezterm
-- Make sure Rust is installed first
+---
+
+### Gnome Custom Settings
+
+- Run gnome settings at startup by editing `cron` jobs for current user
```bash
-$ curl https://sh.rustup.rs -sSf | sh -s
+$ crontab -e
```
-- Install and build Wezterm
+- Add this line to the crontab to run script at startup:
```bash
-$ git clone --depth=1 --branch=main --recursive https://github.com/wez/wezterm.git
-$ cd wezterm
-$ git submodule update --init --recursive
-$ ./get-deps
-$ cargo build --release
-$ cargo run --release --bin wezterm -- start
+@reboot $HOME/.local/bin/scripts/autostart.sh
```
-- - -
+---
+## Development Environment
+### Languages
+
+#### Python
-- - -
-
-## Development Environment
-### Languages
-#### Python
```bash
```
-- - -
-#### Java
-Recommended to choose Openjdk 8 or 10 otherwise get an error when using Android tools
+---
+
+#### Java
+
+Recommended to choose Openjdk 8 or 10 otherwise get an error when using Android tools
+
```bash
```
-- - -
-#### Rust
-- Download and run rustup script
-```bash
-$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-```
-- - -
+---
+
+#### Rust
+
+- Download and run rustup script
+
+```bash
+$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+```
+
+---
+
+#### Go
-#### Go
```bash
```
-- - -
-#### Lua
-- Download LuaRocks
+---
+
+#### Lua
+
+- Download LuaRocks
+
```bash
-$ git clone git://github.com/luarocks/luarocks.git
+$ git clone git://github.com/luarocks/luarocks.git
```
-- Install and specify the installation directory to build and configure LuaRocks
+
+- Install and specify the installation directory to build and configure LuaRocks
+
```bash
$ ./configure --prefix=/usr/local/luarocks
$ make build
$ sudo make install
```
-- Add LuaRocks to system's environment variables by running the following command or add it `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+
+- Add LuaRocks to system's environment variables by running the following command or add it `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+
```bash
export PATH=$PATH:/usr/local/luarocks/bin
```
+
- Install Lua
+
```bash
$ luarocks install lua
```
-- - -
-
-#### PHP
-- Install PHP
-- Install Web server (Apache or Nginx)
-- Install PHP extensions
-```
-php-apache php-cgi php-fpm php-gd php-embed php-intl php-redis php-snmp
-mysql-server php8.1-mysql
-phpmyadmin
-```
-
-- Install composer (Dependency Manager for PHP)
-```bash
-$ curl -sS https://getcomposer.org/installer | php
-```
-- Install laravel
-```bash
-$ composer global require laravel/installer
-```
-- Edit PHP config
-```bash
-$ sudoedit /etc/php/php.ini
-```
-- Enable PHP extensions, make sure these lines are uncommented (remove the `;` from each line)
-```
-extention=bcmath
-extention=zip
-extension=pdo_mysql
-extension=mysqli
-extension=iconv
-
-extension=gd
-extension=imagick
-extension=pdo_pgsql
-extension=pgsql
-```
-- Recommended to set correct timezone
-```
-date.timezone = <Continent/City>
-```
-- Display errors to debug PHP code
-```
-display_errors = On
-```
-- Allow paths to be accessed by PHP
-```
-open_basedir = /srv/http/:/var/www/:/home/:/tmp/:/var/tmp/:/var/cache/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
-```
-- - -
-
-#### Dart
-- Install dart or skip and install flutter (recommended) that includes dart
-```bash
-$ curl -O "https://storage.googleapis.com/dart-archive/channels/be/raw/latest/sdk/dartsdk-linux-x64-release.zip"
-$ unzip dartsdk-linux-x64-release.zip
-$ sudo mv dart-sdk /usr/lib/dart
-```
-NOTE: If Dart SDK is downloaded separately, make sure that the Flutter version of dart is first in path, as the two versions might not be compatible. Use this command `which flutter dart` to see if flutter and dart originate from the same bin directory and are therefore compatible.
-- Install flutter
-```bash
-$ git clone https://github.com/flutter/flutter.git -b stable
-```
-- Move flutter to the `/opt` directory
+
+---
+
+#### PHP
+
+- Install PHP
+- Install Web server (Apache or Nginx)
+- Install PHP extensions
+
+```
+php-apache php-cgi php-fpm php-gd php-embed php-intl php-redis php-snmp
+mysql-server php8.1-mysql
+phpmyadmin
+```
+
+- Install composer (Dependency Manager for PHP)
+
+```bash
+$ curl -sS https://getcomposer.org/installer | php
+```
+
+- Install laravel
+
+```bash
+$ composer global require laravel/installer
+```
+
+- Edit PHP config
+
+```bash
+$ sudoedit /etc/php/php.ini
+```
+
+- Enable PHP extensions, make sure these lines are uncommented (remove the `;` from each line)
+
+```
+extention=bcmath
+extention=zip
+extension=pdo_mysql
+extension=mysqli
+extension=iconv
+
+extension=gd
+extension=imagick
+extension=pdo_pgsql
+extension=pgsql
+```
+
+- Recommended to set correct timezone
+
+```
+date.timezone = <Continent/City>
+```
+
+- Display errors to debug PHP code
+
+```
+display_errors = On
+```
+
+- Allow paths to be accessed by PHP
+
+```
+open_basedir = /srv/http/:/var/www/:/home/:/tmp/:/var/tmp/:/var/cache/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
+```
+
+---
+
+#### Dart
+
+- Install dart or skip and install flutter (recommended) that includes dart
+
+```bash
+$ curl -O "https://storage.googleapis.com/dart-archive/channels/be/raw/latest/sdk/dartsdk-linux-x64-release.zip"
+$ unzip dartsdk-linux-x64-release.zip
+$ sudo mv dart-sdk /usr/lib/dart
+```
+
+NOTE: If Dart SDK is downloaded separately, make sure that the Flutter version of dart is first in path, as the two versions might not be compatible. Use this command `which flutter dart` to see if flutter and dart originate from the same bin directory and are therefore compatible.
+
+- Install flutter
+
+```bash
+$ git clone https://github.com/flutter/flutter.git -b stable
+```
+
+- Move flutter to the `/opt` directory
+
```bash
$ sudo mv flutter /opt/
```
-- Export Flutter over Dart by putting this into `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+
+- Export Flutter over Dart by putting this into `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+
```bash
# Flutter/dart path
export PATH="/opt/flutter:/usr/lib/dart/bin:$PATH"
# Flutter Web Support
export PATH=$PATH:/opt/google/chrome
```
-- Set permissions since only Root has access
-```bash
-$ sudo groupadd flutterusers
-$ sudo gpasswd -a $USER flutterusers
-$ sudo chown -R :flutterusers /opt/flutter
-$ sudo chmod -R g+w /opt/flutter/
-```
-- If still getting any permission denied errors then do this
-```bash
-$ sudo chown -R $USER /opt/flutter
-```
-- Continue to step ***Development Tools/Android Studio*** section to complete setup
-
-- - -
-
-#### Javascript
-- nvm install/update script
-```bash
-$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
-```
-- Put these lines into `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+
+- Set permissions since only Root has access
+
+```bash
+$ sudo groupadd flutterusers
+$ sudo gpasswd -a $USER flutterusers
+$ sudo chown -R :flutterusers /opt/flutter
+$ sudo chmod -R g+w /opt/flutter/
+```
+
+- If still getting any permission denied errors then do this
+
+```bash
+$ sudo chown -R $USER /opt/flutter
+```
+
+- Continue to step **_Development Tools/Android Studio_** section to complete setup
+
+---
+
+#### Javascript
+
+- nvm install/update script
+
+```bash
+$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
+```
+
+- Put these lines into `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+
```bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
```
-- Install node
-```bash
-$ nvm install node
-```
-- Install the latest version in order to make npm executable
+
+- Install node
+
+```bash
+$ nvm install node
+```
+
+- Install the latest version in order to make npm executable
+
```bash
$ nvm install --lts
```
-- - -
-
-### Development Tools
-#### MySQL
-- Install MySQL
-
-- Ensure the MySQL service starts when reboot or startup machine.
-```bash
-$ sudo systemctl start mysqld
-```
-
-- Setup MySQL for use
-```bash
-$ sudo mysql_secure_installation
-```
-
-- To check its installed and working just open up mysql command prompt with
-```
-$ sudo mysql
-```
-- - -
-
-#### Android Studio/SDK
+
+---
+
+### Development Tools
+
+#### MySQL
+
+- Install MySQL
+- Ensure the MySQL service starts when reboot or startup machine.
+
+```bash
+$ sudo systemctl start mysqld
+```
+
+- Setup MySQL for use
+
+```bash
+$ sudo mysql_secure_installation
+```
+
+- To check its installed and working just open up mysql command prompt with
+
+```
+$ sudo mysql
+```
+
+---
+
+#### Android Studio/SDK
+
> NOTE: Android Studio is an Integrated Development Environment (IDE) that provides a comprehensive set of tools for Android app development. It includes the Android SDK (Software Development Kit), which consists of various libraries, tools, and system images necessary for developing Android applications.
> The Android SDK can be installed separately without Android Studio, allowing you to use alternative text editors or IDEs for development. However, Android Studio provides a more streamlined and feature-rich development experience.
-> Make sure to properly set the Java environment (either 8 or 10, eg., java-8-openjdk) otherwise android-studio will not start.
-
-> If Android Studio shows up as a blank window try exporting `_JAVA_AWT_WM_NONREPARENTING=1`.
-- Install android studio
- - Directly from the official website
- ```bash
- $ curl -L -o android-studio.tar.gz "$(curl -s "https://developer.android.com/studio#downloads" | grep -oP 'https://redirector\.gvt1\.com/[^"]+' | head -n 1)"
- $ tar -xvzf android-studio.tar.gz
- $ sudo mv android-studio /opt/
- $ cd /opt/android-studio/bin script # Configure Android Studio by running this script
- $ ./studio.sh
- ```
- - Or optionally install jetbrains-toolbox that includes android-studio amongst many other applications/tools from jetbrains
- ```bash
- $ latest_url=$(curl -sL "https://data.services.jetbrains.com/products/releases?code=TBA" | grep -oP 'https://download.jetbrains.com/toolbox/jetbrains-toolbox-\d+\.\d+\.\d+\.\d+\.tar\.gz' | head -n 1) && curl -L -o jetbrains-toolbox.tar.gz "$latest_url"
- $ tar -xvzf jetbrains-toolbox.tar.gz
- $ sudo mv jetbrains-toolbox /opt/jetbrains
- ```
-- Complete the Android Studio Setup Wizard
- - Click `Next` on the Welcome Window
+> Make sure to properly set the Java environment (either 8 or 10, eg., java-8-openjdk) otherwise android-studio will not start.
+
+> If Android Studio shows up as a blank window try exporting `_JAVA_AWT_WM_NONREPARENTING=1`.
+
+- Install android studio
+ - Directly from the official website
+ ```bash
+ $ curl -L -o android-studio.tar.gz "$(curl -s "https://developer.android.com/studio#downloads" | grep -oP 'https://redirector\.gvt1\.com/[^"]+' | head -n 1)"
+ $ tar -xvzf android-studio.tar.gz
+ $ sudo mv android-studio /opt/
+ $ cd /opt/android-studio/bin script # Configure Android Studio by running this script
+ $ ./studio.sh
+ ```
+ - Or optionally install jetbrains-toolbox that includes android-studio amongst many other applications/tools from jetbrains
+ ```bash
+ $ latest_url=$(curl -sL "https://data.services.jetbrains.com/products/releases?code=TBA" | grep -oP 'https://download.jetbrains.com/toolbox/jetbrains-toolbox-\d+\.\d+\.\d+\.\d+\.tar\.gz' | head -n 1) && curl -L -o jetbrains-toolbox.tar.gz "$latest_url"
+ $ tar -xvzf jetbrains-toolbox.tar.gz
+ $ sudo mv jetbrains-toolbox /opt/jetbrains
+ ```
+- Complete the Android Studio Setup Wizard
+ - Click `Next` on the Welcome Window
- Click `Custom` and `Next`
- - Make sure `/opt/android-sdk` directory exists otherwise create it by typing in the following command in a terminal
+ - Make sure `/opt/android-sdk` directory exists otherwise create it by typing in the following command in a terminal
```bash
$ sudo mkdir /opt/android-sdk
```
- - Click on the folder icon next to the SDK path field.
- - In the file picker dialog, navigate to the /opt directory and select the android-sdk directory.
- - Proceed with the setup wizard, following the remaining instructions to complete the installation.
-- If already installed and prefer not to have a `$HOME/Android` directory but rather use `/opt/android-sdk`
- - Launch Android Studio.
- - Go to "File" > "Settings" (on Windows/Linux) or "Android Studio" > "Preferences" (on macOS) to open the settings.
- - In the settings, navigate to "Appearance & Behavior" > "System Settings" > "Android SDK".
- - In the "Android SDK Location" field, update the path to `/opt/android-sdk`.
- - Click "Apply" or "OK" to save the settings.
-
-- Put these lines into `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+ - Click on the folder icon next to the SDK path field.
+ - In the file picker dialog, navigate to the /opt directory and select the android-sdk directory.
+ - Proceed with the setup wizard, following the remaining instructions to complete the installation.
+- If already installed and prefer not to have a `$HOME/Android` directory but rather use `/opt/android-sdk`
+
+ - Launch Android Studio.
+ - Go to "File" > "Settings" (on Windows/Linux) or "Android Studio" > "Preferences" (on macOS) to open the settings.
+ - In the settings, navigate to "Appearance & Behavior" > "System Settings" > "Android SDK".
+ - In the "Android SDK Location" field, update the path to `/opt/android-sdk`.
+ - Click "Apply" or "OK" to save the settings.
+
+- Put these lines into `.bashrc`/`.zshrc` or any similar shell configuration file to make it persistent across sessions
+
```
# Android Home
export ANDROID_HOME=/opt/android-sdk
@@ -389,100 +517,108 @@ export PATH=$ANDROID_SDK_ROOT:$PATH
# Alias for android-studio
alias android-studio='/opt/android-studio/bin/studio.sh'
```
-- Android SDK and tools installation
- > NOTE: Can be installed either through Android Studio or separately.
- - Android Studio Installed: Launch Android Studio and go to the "SDK Manager" (usually found under "Configure" or "Preferences" menu). From the SDK Manager, select the desired SDK components (platforms, build tools, system images, etc.) and click "Apply" to install them.
- - To install Android SDK separately (without Android Studio):
+
+- Android SDK and tools installation
+ > NOTE: Can be installed either through Android Studio or separately.
+ - Android Studio Installed: Launch Android Studio and go to the "SDK Manager" (usually found under "Configure" or "Preferences" menu). From the SDK Manager, select the desired SDK components (platforms, build tools, system images, etc.) and click "Apply" to install them.
+ - To install Android SDK separately (without Android Studio):
```bash
$ curl -L -o commandlinetools.zip "$(curl -s "https://developer.android.com/studio#downloads" | grep -oP 'https://dl.google.com/android/repository/commandlinetools-linux-\d+_latest\.zip' | head -n 1)"
$ unzip commandlinetools.zip -d android-sdk
$ mkdir android-sdk/cmdline-tools/latest
$ sudo mv android-sdk /opt/
- or
+ or
$ sudo mv android-sdk/cmdline-tools /opt/android-sdk/
```
-- If Android SDK was installed separately then configure the user's permissions since android-sdk is installed in /opt/android-sdk directory
+- If Android SDK was installed separately then configure the user's permissions since android-sdk is installed in /opt/android-sdk directory
+
```bash
-$ sudo groupadd android-sdk
-$ sudo gpasswd -a $USER android-sdk
-$ sudo setfacl -R -m g:android-sdk:rwx /opt/android-sdk
-$ sudo setfacl -d -m g:android-sdk:rwX /opt/android-sdk
+$ sudo groupadd android-sdk
+$ sudo gpasswd -a $USER android-sdk
+$ sudo setfacl -R -m g:android-sdk:rwx /opt/android-sdk
+$ sudo setfacl -d -m g:android-sdk:rwX /opt/android-sdk
```
-- If Android SDK has been installed separately then install platform-tools and build-tools like this:
- - First list `sdkmanager`'s available/installed packages
+
+- If Android SDK has been installed separately then install platform-tools and build-tools like this:
+ - First list `sdkmanager`'s available/installed packages
```bash
$ sdkmanager --list
```
- Install platform-tools and build-tools
- > NOTE: Replace <version> with the specific version number for platforms and build tools to install (e.g., "platforms;android-`33`" "build-tools;`34.0.0`").
+ > NOTE: Replace <version> with the specific version number for platforms and build tools to install (e.g., "platforms;android-`33`" "build-tools;`34.0.0`").
```bash
$ sdkmanager "platform-tools" "platforms;android-<version>" "build-tools;<version>"
```
-- Android emulator
- - List of available android system images.
- ```bash
- $ sdkmanager --list
+- Android emulator
+ - List of available android system images.
+ ```bash
+ $ sdkmanager --list
+ ```
+ - Install an android image of your choice. For example.
+ ```bash
+ $ sdkmanager --install "system-images;android-29;default;x86"
```
- - Install an android image of your choice. For example.
- ```bash
- $ sdkmanager --install "system-images;android-29;default;x86"
+ - Then create an android emulator using Android Virtual Devices Manager
+ ```bash
+ $ avdmanager create avd -n <name> -k "system-images;android-29;default;x86"
```
- - Then create an android emulator using Android Virtual Devices Manager
- ```bash
- $ avdmanager create avd -n <name> -k "system-images;android-29;default;x86"
+- Continuing from **_Dart(flutter)_** section
+ - Update Flutter Config SDK PATH for custom SDK PATH
+ ```bash
+ $ flutter config --android-sdk /opt/android-sdk
```
-- Continuing from ***Dart(flutter)*** section
- - Update Flutter Config SDK PATH for custom SDK PATH
- ```bash
- $ flutter config --android-sdk /opt/android-sdk
- ```
- - Accept all andfoid licenses with this command
+ - Accept all andfoid licenses with this command
```
- $ flutter doctor --android-licenses
+ $ flutter doctor --android-licenses
```
- - If licenses are still not accepted even after running `flutter doctor --android-licenses` try these commands and then run `flutter doctor --android-licenses again`
+ - If licenses are still not accepted even after running `flutter doctor --android-licenses` try these commands and then run `flutter doctor --android-licenses again`
```
- $ sudo chown -R $(whoami) $ANDROID_SDK_ROOT
+ $ sudo chown -R $(whoami) $ANDROID_SDK_ROOT
```
- - Run this
+ - Run this
```
- $ flutter doctor
+ $ flutter doctor
```
-- Update emulator binaries
+- Update emulator binaries
+
```bash
-$ sdkmanager --sdk_root=${ANDROID_HOME} tools
+$ sdkmanager --sdk_root=${ANDROID_HOME} tools
```
-- Accept emulator licenses
-> NOTE: Required to accept the necessary license for each package installed.
+
+- Accept emulator licenses
+ > NOTE: Required to accept the necessary license for each package installed.
+
```bash
-$ sdkmanager --licenses
+$ sdkmanager --licenses
```
-- - -
-## Commands
-
-
-- - -
-#### Windows
-- Install nvim natively to Windows
- - First allow script execution, run the following command in PowerShell as an administrator:
+---
+
+## Commands
+
+---
+
+#### Windows
+
+- Install nvim natively to Windows
+ - First allow script execution, run the following command in PowerShell as an administrator:
```dos
Set-ExecutionPolicy RemoteSigned
```
- - Then run the script by using this command in the same existing directory:
+ - Then run the script by using this command in the same existing directory:
```dos
./win-nvim.ps1
```
```dos
- curl -o winget-cli.appxbundle https://aka.ms/winget-cli-appxbundle
- powershell Add-AppxPackage -Path "winget-cli.appxbundle"
- Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
+ curl -o winget-cli.appxbundle https://aka.ms/winget-cli-appxbundle
+ powershell Add-AppxPackage -Path "winget-cli.appxbundle"
+ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
```
- - Use `-y` or consider: choco feature enable -n allowGlobalConfirmation
+ - Use `-y` or consider: choco feature enable -n allowGlobalConfirmation
```dos
choco install git
```
- - Refresh the environment
+ - Refresh the environment
```dos
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv