Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lime-desu/dootsfile

🏠 - Personal Dotfiles (Managed by GNU Stow)
https://github.com/lime-desu/dootsfile

catppuccin dotfiles fzf gnome linux shell stow tmux xdg-basedir zsh zshrc

Last synced: about 1 month ago
JSON representation

🏠 - Personal Dotfiles (Managed by GNU Stow)

Awesome Lists containing this project

README

        

# dootsfile
🏠 - Personal Dotfiles (Managed by GNU Stow)

![Bocchi](https://user-images.githubusercontent.com/114978689/227949867-bbb1dcb5-8914-434b-83fd-980975e61257.jpg "Current Setup")

## Tools Overview

- **DE**: [Gnome](https://www.gnome.org/)
- **Extensions**: (*[config included](https://github.com/lime-desu/dootsfile/tree/main/share/gnome-shell/extensions)*)
- [arcmenu](https://extensions.gnome.org/extension/3628/arcmenu/)
- [aylurs-widgets](https://extensions.gnome.org/extension/5338/aylurs-widgets/)
- [dash-to-dock](https://extensions.gnome.org/extension/307/dash-to-dock/)
- [hidetopbar](https://extensions.gnome.org/extension/545/hide-top-bar/)
- [just-perfection](https://extensions.gnome.org/extension/3843/just-perfection/)
- [pano](https://extensions.gnome.org/extension/5278/pano/)
- [pop-os-shell](https://github.com/pop-os/shell)
- [rounded-window-corners](https://extensions.gnome.org/extension/5237/rounded-window-corners/)
- **OS**: [Fedora Linux](https://getfedora.org/)
- **Shell**: zsh
- **Framework**: [oh-my-zsh](https://ohmyz.sh/)
- **Plugin Manager**: [custom](https://github.com/lime-desu/dootsfile/blob/main/config/zsh/functions/oh-my-zsh.zsh)
- **Prompt**: [Starship](https://starship.rs/) ([p10k](https://github.com/romkatv/powerlevel10k) as fallback)
- **Terminal**: alacritty, foot
- **Editor**: [Neovim](https://github.com/neovim/neovim/) (using [LazyVim](https://www.lazyvim.org/) configuration)
- **Browser**: [Librewolf](https://librewolf.net/)/Firefox
- **Fonts**: Jetbrains Mono [Nerd Font](https://www.nerdfonts.com/), SF Pro Mono
- **Icons**:
- **Application**: [Skeouwaita](https://github.com/Frostbitten-jello/Skeuowaita)
- **Cursor**: [Catppuccin Cursor](https://github.com/catppuccin/cursors), [Phinger Cursors](https://github.com/phisch/phinger-cursors)
- **Colorscheme**: [Catppuccin](https://github.com/catppuccin/catppuccin) Mocha (Lavender)

### Installation

**Automatic:**

Prerequisites

Any Nerd Fonts installed and used by your terminal emulator to display icon (Highly Recommended: JetBrains Mono, since most of the config using this font)

You can use my script to download any Nerd Fonts
(requires [fzf](https://github.com/junegunn/fzf))
```
bash -c "$(curl -Ls https://raw.githubusercontent.com/lime-desu/bin/main/nf-dl)"
```

Setup Script Dependencies

You don't need to install any of these item listed below since they are already installed on your system, and included on the setup script as well

| Packages | Description |
| :--- | :----|
| chsh | Util-Linux (system utilities)
| curl | Transfer a URL
| git | Version Control System
| jq | Command-line JSON processor
| stow | Manage farms of symbolik links
| tar | An archiving utility
| wget | The non-interactive network downloader
| zsh | Powerful interactive shell

Packages List

#### Applications:

Following packages that will be installed on the setup script:

| Packages | Arch | Debian |Fedora | Void | Description |
| :--- | :--- | :--- | :--- | :--- | :----|
| alacritty | ✓ | ✗ | ✓ | ✓ | Fast, cross-platform, OpenGL terminal Emulator
| foliate | ✓ | ✗ | ✓ | ✓ | A Simple and modern GTK eBook reader
| foot | ✓ | ✓ | ✓ | ✓ | Lightweight Wayland terminal emulator
| mpv | ✓ | ✓ | ✓ | ✓ | A media player
| kitty | ✓ | ✓ | ✓ | ✓ | Cross-platform, fast, feature rich, GPU based terminal

| Flatpak Packages | Description |
| :--- | :--- |
| amberol | Plays music, and nothing else
| flatseal | Utility to manage Flatpak Applications Permission
| junction | Application chooser for opening files and links
| gradience | Change the look of adwaita with ease

**Command Line Utilities** *(Mostly [Modern Unix](https://github.com/ibraheemdev/modern-unix))*

| Packages | Arch | Debian |Fedora | Void | Description |
| :--- | :--- | :--- | :--- | :--- | :----|
| bat | ✓ | ✓ | ✓ | ✓ | A Cat(1) clone with wings
| broot | ✓ | ✗ | ✗ | ✓ | A tree explorer and a customizable launcher
| btop | ✓ | ✓ | ✓ | ✓ | Modern Resources Monitor Utility
| cava | ✗ | ✓ | ✓ | ✓ | Console-based Audio Visualizezr for Alsa
| chafa | ✓ | ✓ | ✓ | ✓ | Terminal graphics and character art generator.
| delta | ✓ | ✗ | ✓ | ✓ | Syntax-highlighting pager for git, diff etc.
| dust | ✓ | ✗ | ✗ | ✓ | A more intuitive version of du in rust
| exa | ✓ | ✓ | ✓ | ✓ | Modern replacement for ls
| fd | ✓ | ✓ | ✓ | ✓ | Simple, fast and user-friendly alternative to find
| fuck | ✓ | ✓ | ✓ | ✓ | App that corrects your previous console command
| fzf | ✓ | ✓ | ✓ | ✓ | A command-line fuzzy finder
| lsd | ✓ | ✗ | ✓ | ✓ | Ls command with pretty colors and some other stuff
| neofetch | ✓ | ✓ | ✓ | ✓ | CLI system information tool
| ripgrep | ✓ | ✓ | ✓ | ✓ | Command Line oriented search tool
| starship | ✓ | ✗ | ✗ | ✓ | Cross platform shell prompt
| tldr | ✓ | ✗ | ✓ | ✓ | Fast and customizable TLDR Client (tealdeer)
| tmux | ✓ | ✓ | ✓ | ✓ | A terminal multiplexer
| unzip | ✓ | ✓ | ✓ | ✓ | A utility for unpacking zip files
| wl-clipboard | ✓ | ✓ | ✓ | ✓ | Command-line copy/paste utilities for Wayland

*Foliate is available on Debian, but it isn't available on Ubuntu (only on 3rd party repo PPA) so I didn't include it.*
*If the package manager can't find all the necessary packages, it will fail to install and won't do anything*

Optional Packages (install via cargo):
- `atuin` - for shell history sync
- `wipe` - for shell clear animations
- `topgrade` - upgrade/update everything

Required version:
- `fzf` >= 0.30 (***deps:*** *bat, broot, fd lsd rg wl-copy*)
- `lsd` >= 0.23.1
- `neovim` >= 0.8.0 (***deps:*** *C Compiler and Nodejs*)

Also include essential group of packages for building and compiling

> **Note** *Prior running the script ensure that environment variable are set. (`echo $XDG_CURRENT_DESKTOP`)*

```sh
if command -v curl >/dev/null 2>&1; then
bash -c "$(curl -Ls https://raw.githubusercontent.com/lime-desu/dootsfile/main/setup.sh)"
else
bash -c "$(wget -O - https://raw.githubusercontent.com/lime-desu/dootsfile/main/setup.sh)"
fi
```

> **Warning** *Please review the script first before executing. Don't blindly run it. Consider running it on a new machine*

> **Note** The info on this README may be outdated. Configuration in this repo are subject to change overtime."

### Keybindings

Firefox

| Keyword | Search |
| --- | --- |
| :g | [Google](https://www.google.com/) |
| :y,
:y/ (most viewed),
:y// or :yt (most viewed by year) | [Youtube](https://www.youtube.com/) |
| :r or :re,
:r/ or r/ (subreddit) | [Reddit](https://www.reddit.com/) |
| :q | [Quora](https://www.quora.com/) |
| :gh, :gh/ (most stars) | [GitHub](https://github.com) |
| :so | [Stack Overflow](https://stackoverflow.com) |
| :use | [Unix Stack Exchange](https://unix.stackexchange.com/) |
| :dd | [DevDocs](https://devdocs.io/) |
| :mdn | [MDN Web Docs](https://developer.mozilla.org/en-US/) |
| :var | [CODELF](https://unbug.github.io/codelf/) |
| :aw | [Arch Wiki](https://wiki.archlinux.org/) |
| :fed | [Ask Fedora](https://ask.fedoraproject.org/) |
| :man | [Mankier](https://www.mankier.com/) |
| :cnf | [Command Not Found](https://command-not-found.com/) |
| :xsh | [Explain Shell](https://www.explainshell.com/) |
| :ia or :wm | [Internet Archive (Wayback Machine)](https://archive.org/) |
| :mw | [Merriam Webster Dictionary](https://www.merriam-webster.com/) |
| :ud | [Urban Dictionary](https://www.urbandictionary.com/) |
| :alt | [AlternativeTo](https://alternativeto.net/) |
| :subs | [OpenSubtitles](https://www.opensubtitles.org/en/search/subs) |
| :dl | [DeepL (to EN)](https://www.deepl.com/translator) |
| :tl | [Google Translate (to EN)](https://translate.google.com/) |
| :maps | [Google Maps](https://maps.google.com/) |
| :lib or :aa | [Anna's Archive](https://annas-archive.org/) |
| :libgen or :lg | [Library Genesis](https://www.libgen.is/) |
| :gr | [Goodreads](https://www.goodreads.com/) |

And many more some weeb and pirate stuff..
You can find all of the list on `about:preferences#search`

**Pro Tip:** Pressing `Ctrl-L` or `Alt-D` will focus on search bar

**Adding custom search engine:**

By default it is disabled you have to enabled it first,
on `about:config` add this line and set it to true
```
browser.urlbar.update2.engineAliasRefresh
```
Also suggest me some good search engines to add...

GNOME

| Key | Action |
| :- | :- |
| Super + Enter | Open Foot (Terminal Emulator) |
| Super + T | Open Alacritty inside tmux (Terminal Emulator) |
| Super + Shift + Q | Close window |
| Super + Shift + M | Maximize window |
| Super + Shift + 1-4 | Move window to workspace number 1-4 |
| Super + 1-4 | Switch to workspace number 1-4 |
| Ctrl + Alt + Left/Right | Move to the Left/Right workspace |
| Ctrl + Alt + Shift Left/Right| Move window one workspace to the Left/Right |
| Alt + Tab | Switch windows |
| Super + Tab | Switch Application (Gnome default alt-tab behaviour)|
| Super + Shift + D | Hide all normal windows |
| Super + Shift + W | Change Wallpaper Randomly |
| Ctrl + Alt + T | Open Gnome Terminal |
| Super + N | Open Neovim (Text Editor) |
| Super + F | Open Foliate (Ebook Reader) |
| Super + E | Open Nautilus (File Manager) |
| Ctrl + Alt + Del | Rickroll (Opens on Foot Terminal) |
| Super + Shift + R | Record a screencast |
| Super + I | Open Settings |
| Ctrl + Shift + Esc | System Monitor |
| Super + Shift + E | Logout/Exit |

Shell Extension bindings:
- Arcmenu: Super + D - Arcmenu runner
- Colorpicker: Super + 0 - Toggle colorpicker
- Pop Os Shell: Super + R - Adjustment Mode
- Pano: Ctrl + Shift + V - Show pano clipboard
- UserTheme: Ctrl + Super + 1-7 - Change topbar theme style

- [Official Documentation](https://help.gnome.org/users/gnome-help/stable/shell-keyboard-shortcuts.html.en)
- [Pop Os Shell Keyboard Shortcuts](https://support.system76.com/articles/pop-keyboard-shortcuts/)

> Super = Windows Logo Key

Neovim

- Leader - to show which-key
- Leader + s + k - to search all keybindings
- [Official Documentation](https://www.lazyvim.org/keymaps)

> Leader = Space

Tmux

- Prefix + ? - to show the list of all keybindings
- [Official Documentation](https://github.com/gpakosz/.tmux#bindings)

> Prefix = Ctrl + a or Ctrl + b

Zsh

| Key | Details |
| :- | :- |
| Ctrl + L | Clear screen and scroll back with animations (requires wipe)
| Alt + Enter | Accept and hold (execute command and don't clear it)
| Alt + Left/Right | Dircycle plugin (Browser like navigating directory stacks `dirs -v`)
| Ctrl-x + Ctrl-v | Edit and paste clipboard (Similar to edit command-line(`Ctrl-x`+`Ctrl-e`))
| Ctrl + Q | Save input (Pressing Ctrl-q will Store/Restore input to buffer)
| Ctrl-x + Ctrl-q | Paste then edit saved input
| Ctrl + J | Insert command substitution (`$()`)
| Alt + S | Insert sudo at the beggining of the line
| Alt + Shift + S | Execute previous command with sudo (sudo !! + enter)
| Alt + L | Execute ls (if the buffer is empty else transform it to lowercase)
| Alt + G | Execute git status (if inside on a git repository)
| Ctrl + / | View in pager (open in pager the previous executed command)
| Ctrl + D | Force exit (by default if the buffer is not empty, zsh won't exit)
| Ctrl + Z | Fancy Ctrl-Z plugin
| . | Rationalise dot (Expands .. to ../..)

Fzf Widgets

| Key | Details |
| :- | :- |
| Ctrl + Tab | Fzf completion `**` and fzf-tab-completion plugin (rebinded instead of tab)
| Alt + M | Manpages Widget (list all manpages can preview with tldr, and cheat.sh)
| Ctrl + F | Ripgrep Widget (ripgrep launcher + fzf as secondary filter)
| Alt + I | Locate Widget (quickly find files with index database using locate command)
| Ctrl + T | File Widget (Fzf Default Keybindings)
| Alt + C | Cd Widget (Fzf Default Keybindings)
| Alt + Shift + C | Cd Recent Directory Widget (based on your dirstack)
| Ctrl + R | History Widget (reverse history search, if there's atuin installed use it)
| Alt + A | Alias Widget (search all aliases)
| Alt + F | Functions Widget (search function list)
| Alt + D | Dictionary Widget (based on /usr/share/dict/words)

> Alt + ? will show list of fzf keybinds

> List all zsh keybinds: `bindkey -M ` (`bindkey -l` to list all keymap)
> To know/change keybinding sequence code: `showkey -a`