Skip to content

Instantly share code, notes, and snippets.

@milovangudelj
Last active October 3, 2025 20:40
Show Gist options
  • Select an option

  • Save milovangudelj/99ca99a4ac886983524ccd8984027366 to your computer and use it in GitHub Desktop.

Select an option

Save milovangudelj/99ca99a4ac886983524ccd8984027366 to your computer and use it in GitHub Desktop.
Shell config
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
if [ -d ~/.bashrc.d ]; then
for rc in ~/.bashrc.d/*; do
if [ -f "$rc" ]; then
. "$rc"
fi
done
fi
unset rc
# Programs and libraries
export PATH="/opt/melonDS:/opt/Spacedrive:/opt/webp/bin:/opt/cmake/bin:/opt/speedtest:/opt/platform-tools:$PATH"
# Custom Aliases
alias sudo='sudo ' # Essential for running aliases as root user
alias cls='clear'
alias ll='ls -la'
alias myip='curl ipinfo.io/ip && echo'
alias cmkb='cmake . -B build/ && cmake --build build/'
alias editor='gnome-text-editor'
alias webcam='gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0'
alias cna='create-next-app --ts --tailwind --eslint --app --no-src-dir --import-alias "~/*" --use-pnpm'
alias pn=pnpm
alias pnx=pnpx
#Oh My Posh
eval "$(oh-my-posh --init --shell bash --config ~/.poshthemes/mars.omp.json)"
. "$HOME/.cargo/env"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# pnpm
export PNPM_HOME="/home/milo/.local/share/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end
# bun
export BUN_INSTALL="$HOME/.bun"
export PATH=$BUN_INSTALL/bin:$PATH
# tabtab source for electron-forge package
# uninstall by removing these lines or running `tabtab uninstall electron-forge`
[ -f /home/milo/.local/share/pnpm/store/v3/tmp/dlx-10258/node_modules/.pnpm/[email protected]/node_modules/tabtab/.completions/electron-forge.bash ] && . /home/milo/.local/share/pnpm/store/v3/tmp/dlx-10258/node_modules/.pnpm/[email protected]/node_modules/tabtab/.completions/electron-forge.bash
"use strict";
// 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: '"FiraCode Nerd Font", "Fira Code", 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: true,
// 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: '',
// set custom startup directory (must be an absolute path)
workingDirectory: '',
// 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',
limeGreen: '#32CD32',
lightCoral: '#F08080',
},
// 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
//
// Windows Subsystem for Linux (WSL) - previously Bash on Windows
// - Example: `C:\\Windows\\System32\\wsl.exe`
//
// Git-bash on Windows
// - Example: `C:\\Program Files\\Git\\bin\\bash.exe`
//
// PowerShell on Windows
// - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
//
// Cygwin
// - Example: `C:\\cygwin64\\bin\\bash.exe`
shell: '/usr/bin/fish',
// for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
// by default `['--login']` will be used
shellArgs: ['--login'],
// for environment variables
env: {},
// Supported Options:
// 1. 'SOUND' -> Enables the bell as a sound
// 2. false: turns off the bell
bell: 'SOUND',
// An absolute file path to a sound file on the machine.
bellSoundURL: '/usr/share/sounds/gnome/default/alerts/drip.ogg',
// 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',
// Whether to use the WebGL renderer. Set it to false to use canvas-based
// rendering (slower, but supports transparent backgrounds)
webGLRenderer: true,
// keypress required for weblink activation: [ctrl|alt|meta|shift]
// todo: does not pick up config changes automatically, need to restart terminal :/
webLinksActivationKey: '',
// if `false` (without backticks and without quotes), Hyper will use ligatures provided by some fonts
disableLigatures: true,
// set to true to disable auto updates
disableAutoUpdates: false,
// set to true to enable screen reading apps (like NVDA) to read the contents of the terminal
screenReaderMode: false,
// set to true to preserve working directory when creating splits or tabs
preserveCWD: true,
// for advanced config flags please refer to https://hyper.is/#cfg
},
// a list of plugins to fetch and install from npm
// format: [@org/]project[#version]
// examples:
// `hyperpower`
// `@company/project`
// `project#1.0.1`
plugins: [
"hyper-gh-dark-default"
],
// 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',
},
};
//# sourceMappingURL=config-default.js.map

Shell setup

Includes .bashrc config, Fish config, oh-my-posh theme and instructions for font installation (Symbols Nerd Font and Fira Code).

Everything is done with Fedora in mind.

Oh-my-posh

sudo curl -s https://ohmyposh.dev/install.sh | sudo bash -s

Nerd fonts

oh-my-posh font install # Then select NerdFontSymbolsOnly

Fira Code - Fedora

dnf install fira-code-fonts
if status is-interactive
# Commands to run in interactive sessions can go here
end
fish_add_path /usr/bin
fish_add_path /opt/webp/bin
fish_add_path /opt/cmake/bin
fish_add_path /opt/speedtest
fish_add_path /opt/platform-tools
fish_add_path /opt/Spacedrive
fish_add_path /opt/melonDS
fish_add_path $HOME/.local/share/pnpm
fish_add_path $HOME/.cargo/bin
fish_add_path $HOME/.bun/bin
# Custom Aliases
alias sudo='sudo ' # Essential for running aliases as root user
alias cls='clear'
alias ll='ls -la'
alias myip='curl ipinfo.io/ip && echo'
alias cmkb='cmake . -B build/ && cmake --build build/'
alias editor='gnome-text-editor'
alias webcam='gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0'
alias cna='create-next-app --ts --tailwind --eslint --app --no-src-dir --import-alias "~/*" --use-pnpm'
alias pn=pnpm
alias pnx=pnpx
oh-my-posh --init --shell fish --config ~/.poshthemes/mars.omp.json | source
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"alignment": "left",
"segments": [
{
"foreground": "lightYellow",
"style": "plain",
"template": "{{ .UserName }} ",
"type": "session"
},
{
"foreground": "cyan",
"properties": {
"style": "mixed"
},
"style": "plain",
"template": "<#ffffff>in</> {{ .Path }} ",
"type": "path"
},
{
"foreground": "#ff94df",
"properties": {
"branch_icon": " <#ff94df><b>\ue0a0 </b></>",
"fetch_stash_count": true
},
"style": "plain",
"template": "<#ffffff>on</> {{ .HEAD }}{{ if gt .StashCount 0 }} \uf692 {{ .StashCount }}{{ end }} ",
"type": "git"
}
],
"type": "prompt"
},
{
"alignment": "left",
"newline": true,
"segments": [
{
"foreground": "lightGreen",
"style": "plain",
"template": "\u276f",
"type": "text"
}
],
"type": "prompt"
}
],
"final_space": true,
"version": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment