As someone that customizes my devices frequently, it's surprising that I've never really touched the terminal, or as it's known on Windows - the command prompt. It's probably because I've never used it very much - it's only when I started learning Django that I used the command prompt on my computers for programming.
In 2016, I discovered the joy of customization when I started installing launchers on my Samsung Core Prime smartphone. From Nova to Microsoft Launcher, I played around with icon packs, the app drawer and the notification center, and I'll be doing a post describing some unique setups for Android devices some time in the future. In 2017, I started using rainmeter, which I still use today.
When I started programming, the main applications I used were Visual Studio Code, Unity, Github/Gitkraken and a web browser. It may seem odd, but until recently my main projects were bootstrap/react-powered websites and a series of interactive games (again, I'll be writing about my journey through programming soon). I never touched the terminal.
I'm now part of a proper team - for a long time, AC0/RD Software was primarily me - and just me - 99% of the time. When I added more people to my network, I started getting involved in python competitions and I learnt a lot about Raspberry Pis, robotics and programming in general. Right now, we're working on API services and I thought getting started with Django would be a good idea. I actually started with Django in April, when I was building the foundations for Arcadia, but after finishing the demo project I hadn't touched it for a while. I'd used the command prompt for things like pip
and setting up virtual environments. When I determined that I'd need to use the terminal, or a bash application, frequently, I quickly came to the decision that I needed to beautify my setup.
I have 4 weeks left of school (including exams), and after Year 12 finishes I'll be getting a new laptop. I don't want to have to go through the aches of re-learning Linux (I haven't used it since May, and the dualbooting process took several years off my life) or getting a Macbook while I'm preparing for my ATAR/WACE exams, so I decided to try and find terminal applications that work on all platforms - that way I'll be able to bring my setup along with me after school.
For now, I'm using HYPERJS. I discovered starship.rs and I fell in love with it, but it was a pain to install - well, I still haven't installed it (ha ha). Hyper was recommended to me by a friend and it looks just as good. If you haven't heard of Hyper, it's a terminal replacement that works on Mac OS, Windows & Linux. It supports a wide variety of open-source plugins and themes, which can be managed in the .hyper.js
file. Here's mine for reference:
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
module.exports = {
config: {
// choose either `'stable'` for receiving highly polished,
// or `'canary'` for less polished but more frequent updates
updateChannel: 'stable',
// default font size in pixels for all tabs
fontSize: 12,
// font family with optional fallbacks
fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
// default font weight: 'normal' or 'bold'
fontWeight: 'normal',
// font weight for bold characters: 'normal' or 'bold'
fontWeightBold: 'bold',
// line height as a relative unit
lineHeight: 1,
// letter spacing as a relative unit
letterSpacing: 0,
// terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
cursorColor: 'rgba(248,28,229,0.8)',
// terminal text color under BLOCK cursor
cursorAccentColor: '#000',
// `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for â–ˆ
cursorShape: 'BLOCK',
// set to `true` (without backticks and without quotes) for blinking cursor
cursorBlink: false,
// color of the text
foregroundColor: '#fff',
// terminal background color
// opacity is only supported on macOS
backgroundColor: '#000',
// terminal selection color
selectionColor: 'rgba(248,28,229,0.3)',
// border color (window, tabs)
borderColor: '#333',
// custom CSS to embed in the main window
css: '',
// custom CSS to embed in the terminal window
termCSS: '',
// if you're using a Linux setup which show native menus, set to false
// default: `true` on Linux, `true` on Windows, ignored on macOS
showHamburgerMenu: '',
// set to `false` (without backticks and without quotes) if you want to hide the minimize, maximize and close buttons
// additionally, set to `'left'` if you want them on the left, like in Ubuntu
// default: `true` (without backticks and without quotes) on Windows and Linux, ignored on macOS
showWindowControls: '',
// custom padding (CSS format, i.e.: `top right bottom left`)
padding: '12px 14px',
// the full list. if you're going to provide the full color palette,
// including the 6 x 6 color cubes and the grayscale map, just provide
// an array here instead of a color map object
colors: {
black: '#000000',
red: '#C51E14',
green: '#1DC121',
yellow: '#C7C329',
blue: '#0A2FC4',
magenta: '#C839C5',
cyan: '#20C5C6',
white: '#C7C7C7',
lightBlack: '#686868',
lightRed: '#FD6F6B',
lightGreen: '#67F86F',
lightYellow: '#FFFA72',
lightBlue: '#6A76FB',
lightMagenta: '#FD7CFC',
lightCyan: '#68FDFE',
lightWhite: '#FFFFFF',
},
// the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
// if left empty, your system's login shell will be used by default
// Windows
// - Make sure to use a full path if the binary name doesn't work
// - Remove `--login` in shellArgs
//
// Bash on Windows
// - Example: `C:\\Windows\\System32\\bash.exe`
//
// PowerShell on Windows
// - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
shells: [
{
name: "CMD",
shell: 'cmd.exe',
args: ['--login'],
},
{
name: "Bash",
group: [
{
name: "WSL",
shell: 'C:\\Windows\\System32\\bash.exe',
args: ['--login'],
},
{
name: "Git",
shell: "C:\\Program Files\\Git\\bin\\bash.exe",
args: ["--login"],
},
],
},
{
name: "Powershell",
shell: "powershell.exe",
default: true,
},
{
name: "Cygwin",
shell: "C:\\cygwin64\\bin\\bash.exe",
args: ["--login"],
},
{
name: "Visual Studio",
shell: "cmd.exe",
args: [
"/k",
"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat",
"amd64",
],
},
],
// for environment variables
env:{ TERM: 'cygwin' },
// set to `false` for no bell
bell: 'SOUND',
// if `true` (without backticks and without quotes), selected text will automatically be copied to the clipboard
copyOnSelect: false,
// if `true` (without backticks and without quotes), hyper will be set as the default protocol client for SSH
defaultSSHApp: true,
// if `true` (without backticks and without quotes), on right click selected text will be copied or pasted if no
// selection is present (`true` by default on Windows and disables the context menu feature)
quickEdit: false,
// choose either `'vertical'`, if you want the column mode when Option key is hold during selection (Default)
// or `'force'`, if you want to force selection regardless of whether the terminal is in mouse events mode
// (inside tmux or vim with mouse mode enabled for example).
macOptionSelectionMode: 'vertical',
// URL to custom bell
// bellSoundURL: 'http://example.com/bell.mp3',
// Whether to use the WebGL renderer. Set it to false to use canvas-based
// rendering (slower, but supports transparent backgrounds)
webGLRenderer: true,
// for advanced config flags please refer to https://hyper.is/#cfg
hyperTabs: {
trafficButtons: true,
}
},
// a list of plugins to fetch and install from npm
// format: [@org/]project[#version]
// examples:
// `hyperpower`
// `@company/project`
// `project#1.0.1`
plugins: [
"hyper-midnight",
"hyper-tabs-enhanced",
"hyper-active-tab",
"hyperpower",
"hyperborder",
"hyper-letters",
"hyper-dark-scrollbar",
],
// in development, you can create a directory under
// `~/.hyper_plugins/local/` and include it here
// to load it and avoid it being `npm install`ed
localPlugins: [],
keymaps: {
// Example
// 'window:devtools': 'cmd+alt+o',
},
};
Top comments (0)