📚 docs(dotfiles): point out to the documentation page

This commit is contained in:
Sergio Laín 2024-10-11 14:38:25 +02:00
parent 0345117aab
commit 58a72f63a1
No known key found for this signature in database
GPG key ID: 8429B2EE312F8150
8 changed files with 46 additions and 1274 deletions

View file

@ -10,126 +10,13 @@
<div align="center">
<a href="#herb--about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="#wrench--setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="#camera--gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/vscodium.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/vscodium.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/vscodium.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
</div>
# :herb: <samp>About</samp>
<br>
[VSCodium](https://vscodium.com/) is my fallback editor in case I cannot use neovim for some specific task, which most of the time doesn't happen but its good to have a backup option.
It's basically the binaries of [VS Code](https://code.visualstudio.com/) but without all of the Microsoft bullshit built on top of it. It functions exactly the same as VS Code, although there's some extensions such as Copilot which needs the telemetry data to function, but as I dont use it, I dont really care.
The extensions I use are the following:
- [alefragnani.project-manager](https://github.com/alefragnani/vscode-project-manager)
- [amodio.toggle-excluded-files](https://github.com/eamodio/vscode-toggle-excluded-files)
- [astro-build.astro-vscode](https://github.com/withastro/vscode-astro)
- [bmalehorn.vscode-fish](https://github.com/bmalehorn/vscode-fish)
- [bradlc.vscode-tailwindcss](https://github.com/bradlc/vscode-tailwindcss)
- [Catppuccin.catppuccin-vsc](https://github.com/catppuccin/catppuccin-vscode)
- [charliermarsh.ruff](https://github.com/charliermarsh/ruff)
- [Codeium.codeium](https://github.com/VSCodeVim/vscode-vim)
- [DavidAnson.vscode-markdownlint](https://github.com/DavidAnson/vscode-markdownlint)
- [yzhang.markdown-all-in-one](https://github.com/yzhang-gh/vscode-markdown)
- [dbaeumer.vscode-eslint](https://github.com/dbaeumer/vscode-eslint)
- [drcika.apc-extension](https://github.com/drcika/apc-extension)
- [dsznajder.es7-react-js-snippets](https://github.com/dsznajder/es7-react-js-snippets)
- [eamodio.gitlens](https://github.com/eamodio/vscode-gitlens)
- [esbenp.prettier-vscode](https://github.com/esbenp/vscode-prettier)
- [ibm.output-colorizer](https://github.com/IBM-Cloud/vscode-log-output-colorizer)
- [ExodiusStudios.comment-anchors](https://github.com/ExodiusStudios/vscode-comment-anchors)
- [formulahendry.code-runner](https://github.com/formulahendry/vscode-code-runner)
- [ms-vscode-remote.remote-ssh](https://github.com/Microsoft/vscode-remote-release)
- [golang.go](https://github.com/filipw/vscode-go)
- [humao.rest-client](https://github.com/humao/rest-client)
- [jrebocho.vscode-random](https://github.com/jrebocho/vscode-random)
- [mads-hartmann.bash-ide-vscode](https://github.com/mads-hartmann/vscode-bash-ide)
- [ms-azuretools.vscode-docker](https://github.com/microsoft/vscode-docker)
- [ms-dotnettools.csharp](https://github.com/dotnet/vscode-csharp)
- [ms-dotnettools.vscode-dotnet-runtime](https://github.com/dotnet/vscode-dotnet-runtime)
- [ms-vscode.cpptools](https://github.com/Microsoft/vscode-cpptools)
- [ms-python.python](https://github.com/microsoft/vscode-python)
- [ms-python.vscode-pylance](https://github.com/microsoft/pylance)
- [petekinnecom.terminal-command-keys](https://github.com/petekinnecom/vscode-terminal-command-keys)
- [rafamel.subtle-brackets](https://github.com/rafamel/vscode-subtle-brackets)
- [redhat.ansible](https://github.com/redhat-developer/vscode-ansible)
- [redhat.vscode-yaml](https://github.com/redhat-developer/vscode-yaml)
- [rust-lang.rust-analyzer](https://github.com/rust-lang/vscode-rust-analyzer)
- [stivo.tailwind-fold](https://github.com/stivoat/tailwind-fold)
- [streetsidesoftware.code-spell-checker](https://github.com/streetsidesoftware/vscode-spell-checker)
- [sumneko.lua](https://github.com/sumneko/vscode-lua)
- [catppuccin.catppuccin-vsc-icons](https://github.com/catppuccin/vscode-icons)
- [svelte.svelte-vscode](https://github.com/sveltejs/vscode-svelte)
- [timonwong.shellcheck](https://github.com/timonwong/vscode-shellcheck)
- [tobias-z.vscode-harpoon](https://github.com/tobias-z/vscode-harpoon)
- [usernamehw.errorlens](https://github.com/usernamehw/vscode-errorlens)
- [vadimcn.vscode-lldb](https://github.com/vadimcn/vscode-lldb)
- [VSpaceCode.whichkey](https://github.com/VSpaceCode/vscode-whichkey)
- [Vue.volar](https://github.com/VueVolar/vue-language-features)
- [yandeu.five-server](https://github.com/yandeu/five-server)
- [YoavBls.pretty-ts-errors](https://github.com/YoavBls/pretty-ts-errors)
- [ziglang.vscode-zig](https://github.com/ziglang/vscode-zig)
- [yutengjing.vscode-colorize-plus](https://github.com/tjx666/vscode-colorize)
- [barbosshack.crates-io](https://github.com/BarbossHack/crates-io)
- [pucelle.vscode-css-navigation](https://github.com/pucelle/vscode-css-navigation)
- [tamasfe.even-better-toml](https://github.com/tamasfe/taplo)
- [kisstkondoros.vscode-gutter-preview](https://github.com/kisstkondoros/gutter-preview)
- [emilast.logfilehighlighter](https://github.com/emilast/vscode-logfile-highlighter)
- [asvetliakov.vscode-neovim](https://github.com/vscode-neovim/vscode-neovim)
# :wrench: <samp>Setup</samp>
### :package: Extensions Installation
VSCodium comes with a CLI client where you can export the extensions list you have installed, or import the list of extensions you want to install.
In the repo there's a binary that can be used to install a list of extensions from a text file. [Here it is](../../../../.local/bin/installCodiumExtensions).
Firstly, here's how you can export your list of extensions:
```bash
vscodium --list-extensions > extensions.txt
```
After you have the file, here's how to install them:
```bash
~/.local/bin/installCodiumExtensions <extensions-file>
```
If you want my list, [check it out](../extensions.txt).
### :package: Native Neovim Integration
At this point, I dont think I could use VSCodium without it. Here's how you can do it:
Firstly, install the [vscode-neovim extension](https://github.com/vscode-neovim/vscode-neovim). There's the [vim extension](https://github.com/VSCodeVim/Vim) as well, but that's just an emulation meanwhile this one uses neovim under the hood and you can even load part of your configuration which is amazing.
Next up, edit the [settings.json file](../settings.json) and find the line that says `"vscode-neovim.neovimExecutablePaths.linux": "/home/matt/.local/share/bob/nvim-bin/nvim"` and change the path to your personal neovim binary.
Finally, if you want part of your neovim configuration on VSCodium, open neovim and enable the extra called `util.vscode`. After that, open VSCodium and you should be able to use some neovim plugins out of the box such as flash.nvim, and have part of the keybindings working. If you wanna enable a plugin for VSCodium you can do so by adding this options in your plugin table: `vscode = true`.
If you wanna enable some keybindings, make sure to open the vscode.lua extra file and find the autocmd where you can add new keybindings to call the VSCodium API. An example of a keybinding:
```lua
map("n", "<leader>xx", vscode_action("workbench.actions.view.problems"))
```
If you also want something like which-key, you can install the [which-key plugin](https://github.com/VSpaceCode/vscode-whichkey). Check their docs to see how to add new keybindings.
# :camera: <samp>Gallery</samp>
| **Overview** |
| ------------------------------- |
| ![overview-1](./overview-1.png) |
| **Flash.nvim inside VSCodium** |
| ------------------------------- |
| ![overview-2](./overview-2.png) |
| **Multiple Terminals** |
| ------------------------------- |
| ![overview-3](./overview-3.png) |
> [!NOTE]
> All the information about the VSCodium setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/vscodium.html

View file

@ -10,104 +10,13 @@
<div align="center">
<a href="#herb--about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="#wrench--setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="#camera--gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/browser.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/browser.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/browser.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
</div>
# :herb: <samp>About</samp>
<br>
The browser I'm using right now is [Zen](https://zen-browser.app/). It is a fork of Firefox, which adds some functionality I really like such as:
- 🚦 Vertical Tabs
- 👉 Split Views
- 🔒 Strong Privacy Options and Defaults (Using [BetterFox](https://github.com/yokoffing/Betterfox))
- 🔥 Fast as F\*ck
- 🍿 And much more...
The extensions I'm using are:
- [Improve Youtube](https://github.com/code-charity/youtube) [:gear:](../extensions/improved-youtube.json)
- [Bitwarden](https://addons.mozilla.org/en-US/firefox/addon/bitwarden-password-manager/?browser=firefox)
- [Catppuccin Github Icons](https://github.com/catppuccin/github-file-explorer-icons)
- [Dark Reader](https://github.com/darkreader/darkreader) [:gear:](../extensions/dark-reader.json)
- [Firefox Color](https://addons.mozilla.org/en-US/firefox/addon/firefox-color/)
- [LibRedirect](https://github.com/libredirect/browser_extension) [:gear:](../extensions/libredirect.json)
- [New Tab Override](https://addons.mozilla.org/en-US/firefox/addon/new-tab-override/)
- [Return Youtube Dislikes](https://github.com/Anarios/return-youtube-dislike)
- [Search by Image](https://github.com/dessant/search-by-image)
- [Sidebery](https://github.com/mbnuqw/sidebery) [:gear:](../extensions/sidebery.json)
- [Sponsorblock](https://github.com/ajayyy/SponsorBlock) [:gear:](../extensions/sponsor-block.json)
- [Stylus](https://github.com/openst) [:gear:](../extensions/stylus.json)
- [SurfingKeys](https://github.com/brookhong/Surfingkeys) [:gear:](https://github.com/Matt-FTW/surfingkeys-conf)
- [Tab Session Manager](https://github.com/sienori/Tab-Session-Manager) [:gear:](../extensions/session-manager.json)
- [uBlock Origin](https://github.com/gorhill/uBlock#ublock-origin) [:gear:](../extensions/ublock.txt)
- [Web Scrobbler](https://github.com/web-scrobbler/web-scrobbler)
- [ViolentMonkey](https://github.com/violentmonkey/violentmonkey) [:gear:](../extensions/violentmonkey.zip)
Scripts:
- [Simple YouTube Age Restriction Bypass](https://greasyfork.org/en/scripts/423851-simple-youtube-age-restriction-bypass)
- [KeepChatGPT](https://greasyfork.org/en/scripts/462804-keepchatgpt)
- [YouTube - Stay Active and Play Forever](https://greasyfork.org/en/scripts/390352-youtube-stay-active-and-play-forever)
- [Bypass All Shortlinks Debloated](https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated)
- [GreasyFork Bullshit Filter](https://greasyfork.org/en/scripts/12179-greasyfork-bull-filter)
- [Fandom Redirect](https://greasyfork.org/en/scripts/476527-fandom-redirect)
I'm also using my [custom Startpage](https://github.com/Matt-FTW/startpage) based on [this project](https://github.com/pivoshenko/catppuccin-startpage).
# :wrench: <samp>Setup</samp>
> [!WARNING]
> Guide is created only for Firefox based browsers.
### :package: Theme Installation
First of all, check your active profile. To do so, type `about:profiles` in your browser toolbar. Open the folder where that profile is located (~/.{browser}/{profileid}/). Now symlink or copy the chrome folder from the configuration to the active profile folder.
**Be sure to change the path to your profile**.
```bash
# Symlink the folder (Recommended, this way changing values on the original path alters the destination)
ln -sf ~/.config/browser/chrome/ ~/.{browser}/{profileid}/chrome
# Copy the folder
cp -r ~/.config/browser/chrome/ ~/.{browser}/{profileid}/chrome
```
Now, to install the colorscheme for your browser make sure to follow [this guide](https://github.com/catppuccin/firefox) and select the **Macchiato** variant and the **Lavender** accent color.
Close all instances of your browser and open it again.
Tada! 🎉 You should now see your theme correctly installed.
### :package: user.js Installation
Just like before, check your active profile. Now symlink or copy the user.js file from the configuration to the active profile folder.
```bash
# Symlink the folder (Recommended, this way changing values on the original path alters the destination)
ln -sf ~/.config/browser/userjs/{browser}-user.js ~/.{browser}/{profileid}/user.js
# Copy the file
cp ~/.config/browser/userjs/{browser}-user.js ~/.{browser}/{profileid}/user.js
```
As before, close all instances of your browser and you should be able to test your new user.js.
### :package: Extensions Installation
Read the extensions list over on [this file](). To import the configurations, check each extensions docs to see how.
### :package: Startpage Installation
Read the Startpage [usage section](https://github.com/Matt-FTW/startpage?tab=readme-ov-file#usage) in the README.
# :camera: <samp>Gallery</samp>
| **Startpage** |
| ------------------------------- |
| ![overview-1](./overview-1.png) |
| **Github Repo** |
| ------------------------------- |
| ![overview-2](./overview-2.png) |
> [!NOTE]
> All the information about the browser setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/browser.html

View file

@ -10,91 +10,13 @@
<div align="center">
<a href="#herb--about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="#wrench--setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="#camera--gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/fish.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/fish.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/fish.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
</div>
# :herb: <samp>About</samp>
<br>
[Fish](https://fishshell.com/) is my default shell. I tried [zsh](https://zsh.org) in the past but I like the built in options of fish as well as its language and the plugin options.
Talking about plugins, these are the ones I'm currently using:
- [Catppuccin](https://github.com/catppuccin/fish)
- [Done](https://github.com/franciscolourenco/done)
- [ssh-agent](https://github.com/danhper/fish-ssh-agent)
- [fzf.fish](https://github.com/Matt-FTW/fzf.fish)
- [Abbreviations-Tips](https://github.com/gazorby/fish-abbreviation-tips)
- [Sudope](https://github.com/oh-my-fish/plugin-sudope)
- [Puffer-fish](https://github.com/nickeb96/puffer-fish)
- [Autopair](https://github.com/jorgebucaran/autopair.fish)
The prompt I use is [starship](https://starship.rs/). A minimal, easy to customize and blazingly fast prompt written in **Rust btw** 🦀
There is some completion files for apps that I use. You can check them [here](../completions/).
In term of aliases, I have none. Instead, I use custom functions, but that's just a preference. Be sure to not put your aliases inside you config.fish tho. If you wanna know more about it, check this [article](https://bsago.me/tech-notes/make-fish-start-faster).
Abbreviations are included in [this file](../abbreviations.fish).
Finally, if you want to include some custom variables to export at the start of a session, you can do so by placing theme inside [this file](../user_variables.fish). I have some variables already there to help with the XDG directory standard, fzf options, folders that need to be added into the $PATH, etc.
# :wrench: <samp>Setup</samp>
### :package: Prompt Installation
Starship can be installed from multiple sources. Make sure to check their [installation guide](https://starship.rs/guide/#%F0%9F%9A%80-installation). Once you have Starship installed, restart your session and enjoy!
### :package: Extensions Installation
To install and manage all the plugins, make sure to install [fisher](https://github.com/jorgebucaran/fisher) in your system; it is going to be our plugin manager. Here's a quick reference guide for installing, updating and removing plugins.
```bash
# To install all plugins
fisher list | fisher install
# To install a specific plugin
fisher install <name-plugin>
# To update all plugins
fisher update
# To update a specific plugin
fisher update <name-plugin>
# To remove all plugins
fisher list | fisher remove
# To remove a specific plugin
fisher remove <name-plugin>
```
### :package: Theme Installation
Once you install catppuccin the way I showed before, launch a new session and execute this command:
```bash
fish_config theme save "Catppuccin <variant-name>"
```
My variant name is **macchiato**. Close and open a new session to see the changes.
To have the LS_COLORS variable with the right colors, install [vivid](https://github.com/sharkdp/vivid) (The Arch Linux way, check docs for other installations):
```bash
sudo pacman -S vivid
```
Restart the session to see the changes.
# :camera: <samp>Gallery</samp>
| **Shell Prompt** |
| ------------------------------- |
| ![overview-1](./overview-1.png) |
| **Commands and LS_COLORS** |
| ------------------------------- |
| ![overview-2](./overview-2.png) |
> [!NOTE]
> All the information about the Fish setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/fish.html

View file

@ -10,85 +10,13 @@
<div align="center">
<a href="#herb--about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="#wrench--setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="#camera--gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/hyprland.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/hyprland.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/hyprland.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
</div>
# :herb: <samp>About</samp>
<br>
[Hyprland](https://hyprland.org/) is my default window manager. It has stunning animations (which I always wanted when I started using a WM), excellent Wayland support, dynamic tiling which I prefer over manual or hybrid and an amazing ecosystem of plugins and applications.
The plugins I'm using are the following:
- [Hyprsplit](https://github.com/shezdy/hyprsplit)
- [Hyprexpo](https://github.com/hyprwm/hyprland-plugins/tree/main/hyprexpo)
- [Hyprspace](https://github.com/KZDKM/Hyprspace) (_Disabled_)
- [Dynamic Cursors](https://github.com/VirtCode/hypr-dynamic-cursors) (_Disabled_)
- [Hyprtrails](https://github.com/hyprwm/hyprland-plugins/tree/main/hyprtrails) (_Disabled_)
Alongside this plugins, I use some specific apps from the hypr ecosystem
- [Hyprlock](https://github.com/hyprwm/hyprlock)
- [Hypridle](https://github.com/hyprwm/hypridle)
- [Hyprpicker](https://github.com/hyprwm/hyprpicker)
- [pyprland](https://github.com/hyprland-community/pyprland)
- [Hyprshot](https://github.com/Gustash/Hyprshot) (_Script_)
- [Hyprfreeze](https://github.com/Zerodya/hyprfreeze) (_Script_)
Focusing in the config, hyprland.conf imports every config file, from the binds to the inputs, monitors or the theme.
If you want to easily configure the workspaces or the monitors, check out [this program](https://github.com/nwg-piotr/nwg-displays).
Wanna see or add new bindings? Check [this file](../configs/binds.conf).
Wanna edit the theme? Check [this folder](../theme/).
Are you interested in all of the more than 100 wallpapers available? [Check them out!](../theme/walls/.github/README.md)
Maybe you want to add a new app or service to autostart? Check [this](../scripts/autostart/)
If you want to add a new script to the config, go to [this folder](../scripts/).
If you have any other default programs, you can edit [this file](../configs/default_apps.conf) to set your defaults.
# :wrench: <samp>Setup</samp>
### :package: Extensions Installation
You can manage and install extensions with `hyprpm`, a package manager that ships by default with hyprland. Here's a quick reference guide for installing, updating and removing extensions.
> [!WARNING]
> hyprpm update may not work. This is and issue with hyprland and its plugins, not with the dotfiles themselves.
```bash
# Installing an extension
hyprpm add <repo-link>
# To update all extensions
hyprpm update
# To remove an specific extension
hyprpm remove <extension-name>
```
After you install an extension, make sure to enable it:
```bash
hyprpm enable <extensions-name>
```
# :camera: <samp>Gallery</samp>
| **Overview 1** |
| ------------------------------- |
| ![overview-1](./overview-1.png) |
| **Overview 2** |
| ------------------------------- |
| ![overview-2](./overview-2.png) |
| **Overview 3** |
| ------------------------------- |
| ![overview-3](./overview-3.png) |
> [!NOTE]
> All the information about the Hyprland setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/hyprland.html

View file

@ -10,138 +10,13 @@
<div align="center">
<a href="#herb--about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="#wrench--setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="#camera--gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/neovim.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/neovim.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/neovim.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
</div>
# :herb: <samp>About</samp>
[Neovim](https://neovim.io/) is my main editor of choice. Not only is faster than its competitors, but it's also super customizable, obviously uses the vim bindings (which are the best thing when it comes to manipulating text) and has a great and big community. This are the tip of the iceberg, but since I made the change back in 2023, I never looked back.
I first started using vanilla Neovim without any configurations and trying to build my own config from scratch, but I got a little frustrated and decided to try some preconfigured configs. After a lot of trying and researching I stumbled upon [LazyVim](https://github.com/LazyVim/LazyVim), which is the one I'm currently using as a base. It has the best defaults by far, easy to get into and customize, active maintainer (i love you Folke 💕), and finally the best feature: extras.
Extras are basically a bunch of plugin specs, which you can divide in different files. You can import each other as well, and they serve as plugins that you can enable and disable easily through a menu by typing the `:LazyExtras` command. This is so good when you are trying to built a configuration that depending on the project or the tastes of the person, can select different plugin selections.
This is what I built my configuration around. You can built on top of LazyVim with the extras you want to enable or disable. It makes for hundreds of plugin combinations and is all super modular. Currently, there are more than 200 extras available to choose. Do you want to know which plugins/extras I have? You can check them [over here](https://dotfyle.com/Matt-FTW/dotfiles-config-nvim).
There are a lot of languages supported (zig, rust, svelte, typescript, java, go, etc), as well as a bunch of formatters (biome, prettier, ruff, stylua, shfmt, rustywind, etc) and linters (biome, eslint, pylint, selene, markdownlint, stylelint, etc).
All the other configuration that you want to do, like assigning some new keymaps, options or autocmds, can be done like in LazyVim, and all the defaults and configuration options are the ones from LazyVim, so if you tried it before, you're gonna like this 😉. Check the [LazyVim docs](https://www.lazyvim.org/) to know more about it.
# :wrench: <samp>Setup</samp>
### :package: Extras Installation
To install an extra is just as easy as opening neovim, typing `:LazyExtras`, and selecting any row from the menu that appears. To select one, hit the `x` key. And your done, be sure to close and open again neovim to see the changes.
<br>
> [!NOTE]
> There are some extras that have extended in the name. Those are based on the native [LazyVim extras](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/plugins/extras).
If you see any errors with a custom extra, be sure to report it by creating a [new issue](https://github.com/Matt-FTW/dotfiles/issues/new/choose).
### :package: Neovim Version Manager
If you wanna use multiple instances of neovim and switch between them, check out [bob](https://github.com/MordechaiHadad/bob).
Here is a quick start using the latest version as an example:
```bash
# Install the latest version
bob install latest
# Switch to the latest version
bob use latest
# Check installed versions
bob ls
# Uninstall the latest version
bob uninstall latest
```
Check the [bob usage section](https://github.com/MordechaiHadad/bob?tab=readme-ov-file#-usage) for more information.
### :package: Neovim Standalone Config
This section is for those who only want to install the Neovim config instead of all the dotfiles or they want to try this config alongside theirs.
To do this, first of all clone the repo and install the plugins.
```bash
git clone git@github.com:Matt-FTW/dotfiles ~/.config/Matt-FTW/dotfiles
NVIM_APPNAME=Matt-FTW/dotfiles/.config/nvim nvim --headless +"Lazy! sync" +qa
```
Finally to open neovim and try the configuration use this command:
> [!TIP]
> Add the command as an alias to your shell config if you want to use it in the future alongside your neovim config.
```bash
NVIM_APPNAME=Matt-FTW/dotfiles/.config/nvim nvim
```
# :camera: <samp>Gallery</samp>
| **Dashboard** |
| ------------------------------------ |
| ![dashboard](./assets/dashboard.png) |
| **Telescope Find-files** |
| -------------------------------------- |
| ![find-files](./assets/find-files.png) |
| **Neo-tree** | **Symbols Outline** |
| ---------------------------------- | -------------------------------- |
| ![neo-tree](./assets/neo-tree.png) | ![outline](./assets/outline.png) |
| **Bufferline** |
| -------------------------------------- |
| ![bufferline](./assets/bufferline.png) |
| **Lualine** |
| -------------------------------- |
| ![lualine](./assets/lualine.png) |
| **Notify Info** | **Notify Warning** | **Notify Error** |
| --------------------------------- | --------------------------------------- | ----------------------------------- |
| ![info](./assets/notify-info.png) | ![warning](./assets/notify-warning.png) | ![error](./assets/notify-error.png) |
| **Which-key** |
| ------------------------------------ |
| ![which-key](./assets/which-key.png) |
| **Telescope Live-Grep** |
| ------------------------------------ |
| ![live-grep](./assets/live-grep.png) |
| **Cmp** |
| ---------------------------- |
| ![cmp](./assets/cmp.png) |
| ![cmp-2](./assets/cmp-2.png) |
| **Breadcrumbs** |
| ---------------------------------------- |
| ![breadcrumbs](./assets/breadcrumbs.png) |
| **Actions Preview** |
| ------------------------------------------------ |
| ![actions-preview](./assets/actions-preview.png) |
| **Trouble** |
| -------------------------------- |
| ![trouble](./assets/trouble.png) |
| **Diff-History** |
| ------------------------------------------ |
| ![diff-history](./assets/diff-history.png) |
| **Floaterm** |
| ---------------------------------------- |
| ![floating](./assets/floaterm-float.png) |
| **Dressing Menu** |
| ---------------------------------- |
| ![dressing](./assets/dressing.png) |
> All the information about the neovim setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/neovim.html

View file

@ -10,53 +10,13 @@
<div align="center">
<a href="#herb--about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="#wrench--setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="#camera--gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/tmux.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/tmux.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/tmux.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
</div>
# :herb: <samp>About</samp>
<br>
My default multiplexer is [tmux](https://github.com/tmux/tmux). In the past I tried [Zellij](https://zellij.dev/) and I really liked it, but when I tried tmux, it was a whole different story. Not only is faster, but more customizable, has a ton of plugins and it has a ton of documentation and help online. I had a zellij config before I switched to tmux so if you wanna see it, [take a look](https://github.com/Matt-FTW/dotfiles/commit/8e63e29833470bebd0d812035ec811149d0c5d7e).
Now, here are the plugins I use alongside tmux:
- [tpm](https://github.com/tmux-plugins/tpm) (Plugin manager)
- [catppuccin](https://github.com/catppuccin/tmux)
- [tmux-sessionx](https://github.com/omerxx/tmux-sessionx)
- [tmux-fzf-url](https://github.com/wfxr/tmux-fzf-url)
- [tmux-sensible](https://github.com/tmux-plugins/tmux-sensible)
- [tmux-floax](https://github.com/omerxx/tmux-floax)
The plugins and their options are declared on [this file](../conf/plugins.conf).
For tmux base options, you can find them [over here](../conf/options.conf).
In the case of the keybindings, [here they are](../conf/binds.conf).
# :wrench: <samp>Setup</samp>
### :package: Plugins Installation
First, you need to install [tpm](https://github.com/tmux-plugins/tpm), the tmux plugin manager. Use this command to do so:
```bash
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
```
Once you enter tmux, hit `prefix + I` to install all the plugins. And that's it.
# :camera: <samp>Gallery</samp>
| **Floating Terminal** |
| ------------------------------- |
| ![overview-1](./overview-1.png) |
| **Image Preview** |
| ------------------------------- |
| ![overview-2](./overview-2.png) |
| **Session Manager** |
| ------------------------------- |
| ![overview-3](./overview-3.png) |
> [!NOTE]
> All the information about the tmux setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/tmux.html

View file

@ -10,75 +10,12 @@
<div align="center">
<a href="#herb--about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="#wrench--setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="#camera--gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/yazi.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/yazi.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/yazi.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
</div>
# :herb: <samp>About</samp>
[Yazi](https://github.com/sxyazi/yazi) is my preferred file manager for the terminal. There's options like [xplr](https://github.com/sayanarijit/xplr), [lf](https://github.com/gokcehan/lf) or [ranger](https://github.com/ranger/ranger), but I feel like yazi is a next-gen file manager, written in Rust, with a plugin ecosystem written in Lua.
Its fast, easy to use and so customizable.
The plugins I'm using are the following:
- [full-border](https://github.com/yazi-rs/plugins/tree/main/full-border.yazi)
- [searchjump](https://gitee.com/DreamMaoMao/searchjump.yazi)
- [yatline](https://github.com/imsi32/yatline.yazi)
- [yatline-githead](https://github.com/imsi32/yatline-githead.yazi)
- [fg](https://gitee.com/DreamMaoMao/fg.yazi)
- [smart-filter](https://github.com/yazi-rs/plugins/tree/main/smart-filter.yazi)
- [hide-preview](https://github.com/yazi-rs/plugins/tree/main/hide-preview.yazi)
- [git](https://github.com/yazi-rs/plugins/tree/main/git.yazi)
The added keymaps are located on [this file](../keymap.toml).
If you wanna check the theme or add another one, you can do so in the [flavors folder](../flavors/). After that make sure to edit [theme.toml](../theme.toml) and add that new flavor name.
Any other configurations are inside the [yazi.toml file](../yazi.toml), like if you wanna add other programs when opening certain type of files or modify the fetchers.
Be sure to read [the docs](https://yazi-rs.github.io/) if you wanna know all the options available.
# :wrench: <samp>Setup</samp>
### :package: Plugins Installation
Yazi has a plugin manager built in, called `ya`. To manage yazi plugins you can use the next commands:
```bash
# Add a plugin
ya pack -a <plugin-name>
# Install plugins
ya pack -i
# To update all extensions
ya pack -u
```
<br>
> [!NOTE]
> Check the docs for every extensions to find the exact commands and the next steps to take, like initializing the plugins in the [init.lua](../init.lua) file
There are some packages that cannot be managed with `ya`. You can clone them with git like this:
```bash
git clone <repo-link> ~/.config/yazi/plugins/<plugin-name>
```
> [!WARNING]
> If you dont install all the plugins I have, make sure to remove their init calls (basically, the require("plugin-name") call) on [this file](../init.lua) or yazi will not launch.
# :camera: <samp>Gallery</samp>
| **Repo** |
| ------------------------------- |
| ![overview-1](./overview-1.png) |
| **Rust Code inside a Repo** |
| ------------------------------- |
| ![overview-2](./overview-2.png) |
| **Image Preview** |
| ------------------------------- |
| ![overview-3](./overview-3.png) |
> All the information about the yazi setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/yazi.html

658
.github/README.md vendored
View file

@ -10,10 +10,10 @@
<div align="center">
<a href="#herb--about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="#wrench--setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="#camera--gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="#tada--credits"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-credits.png"></a>
<a href="https://dotfiles-docs.vercel.app/getting-started/about.html"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/getting-started/installation.html"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/getting-started/gallery.html"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
<a href="https://dotfiles-docs.vercel.app/other/credits.html"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-credits.png"></a>
</div>
@ -32,653 +32,7 @@
<a href="https://github.com/Matt-FTW/dotfiles"><img alt="Size" src="https://img.shields.io/github/repo-size/Matt-FTW/dotfiles?style=for-the-badge&logo=discord&color=DDB6F2&logoColor=D9E0EE&labelColor=302D41"></a>
</div>
# :herb: <samp>About</samp>
Hey there! :wave:
This is my personal dotfiles repository.
I created this repo to help me backup my config files and to easily **deploy** them in a new machine with the help of [Ansible](https://www.ansible.com/) and [yadm](https://yadm.io). It has some files exclusive to my personal use (programming, gaming, etc) so it's not just a rice.
At first I didn't think about ricing but more and more, my focus has got into creating a good and aesthetic rice, with a lot of customization, as well as maintaining the easy deploy and use for my multiple machines.
If you wanna know how to **install** them, go to the [setup](#wrench--setup) section. There is a guided installation.
I've been working on this for a long time so I hope you like it!
## ✨ Features
- :dark_sunglasses: Dark Mode for the Whole System
- :zzz: Neovim powered by LazyVim with Custom Extras Added (More than 200!)
- :point_up: Screenshot, Keybindings, Games, Clipboard, Color and Wallpaper Picker
- :window: Animations for nearly all the System
- :wrench: Modular Configuration
- :desktop_computer: AwesomeWM Workspace Behavior
- :open_file_folder: Following XDG Base Directory Standard
- :car: Automatic Mounting of USB Devices with Notification
- :scroll: Scratchpads
- :dizzy: Beautiful [Wallpapers](../.config/hypr/theme/walls/.github/README.md)
- :nerd_face: Shell Prompt with Nerd Icons
- :heavy_plus_sign: Extra Hyprland Plugins
- :earth_americas: Custom Userchrome and Extension Configurations
- :rocket: Minimal VSCodium with Native Integration of your Neovim Setup
- :crab: Rust Alternatives
- :bell: Notification Center
- :loud_sound: Volume and Brightness OSD
- :art: Color Scripts for the Terminal
- :lock: Idle and Lock apps
- :zap: Performance Mode
- :gear: Various other Tweaks
---
## 🌸 Core System Info
<img src="assets/rice-logo.png" alt="rice-logo" align="right" width="390px">
The rice codename is **Artemis** 🏹, named after the Greek goddess of the hunt and the wild.
- **OS**: [Arch Linux](https://archlinux.org/) :boom:
- **WM**: [hyprland](https://hyprland.org/) :window:
- **Shell**: [fish](https://fishshell.com/) :shell:
- **Terminal Emulator**: [kitty](https://sw.kovidgoyal.net/kitty/) :cat:
- **Panel**: [waybar](https://github.com/Alexays/Waybar) :shaved_ice:
- **Text Editor**: [neovim](https://neovim.io/) :keyboard:
- **App Launcher**: [rofi](https://davatorium.github.io/rofi/) :rocket:
- **File Manager**: [yazi](https://yazi-rs.github.io/) / [nemo](https://community.linuxmint.com/software/view/nemo) :open_file_folder:
- **Browser**: [Zen-Browser](https://zen-browser.app) :globe_with_meridians:
- **Notification Manager**: [swaync](https://github.com/ErikReider/SwayNotificationCenter) :bell:
- **Colorscheme**: [Catppuccin](https://github.com/catppuccin/catppuccin) :art:
---
### 🐧 Whole System Info
Here is all the information about my setup:
> [!NOTE]
> Some of this apps have the config files included in the repo, which are marked with ⚙️.
> Also, my favorite are programs and tools are marked with 💖.
<details>
<summary><b>🐧 System</b></summary>
| 📚 Entry | ✨ App |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **OS** | 💖 [Arch Linux](https://archlinux.org/) |
| **Package Manager** | [pacman](https://wiki.archlinux.org/title/Pacman) [:gear:](../.config/pacman/) |
| **AUR Helper** | 💖 [yay](https://github.com/Jguer/yay) [:gear:](../.config/yay/) |
| **Display Manager** | [greetd](https://sr.ht/~kennylevinsen/greetd/) (with [tuigreet](https://github.com/apognu/tuigreet)) |
| **Window Manager** | 💖 [hyprland](https://hyprland.org/) [:gear:](../.config/hypr/) |
| **Notification Daemon/Center** | [swaync](https://github.com/ErikReider/SwayNotificationCenter) [:gear:](../.config/swaync/) |
| **OSD Popup** | [swayosd](https://github.com/ErikReider/SwayOSD) |
| **Bar** | 💖 [waybar](https://github.com/Alexays/Waybar) [:gear:](../.config/waybar/) |
| **Audio Daemon** | [pipewire](https://pipewire.org/) |
| **Application Launcher** | 💖 [rofi](https://github.com/lbonn/rofi) [:gear:](../.config/rofi/) |
| **Firewall** | [ufw](https://wiki.archlinux.org/title/ufw) |
| **Clipboard Manager** | [wl-clipboard](https://github.com/bugaevc/wl-clipboard) (with [cliphist](https://github.com/sentriz/cliphist)) |
| **Wallpaper Switcher** | [swww](https://github.com/Horus645/swww) |
| **Lock Screen** | [hyprlock](https://github.com/hyprwm/hyprlock) [:gear:](../.config/hypr/hyprlock.conf) |
| **Idle Timeout** | [hypridle](https://github.com/hyprwm/hypridle) [:gear:](../.config/hypr/hypridle.conf) |
| **Color Picker** | [hyprpicker](https://github.com/hyprwm/hyprpicker) |
| **Screenshot Tool** | [hyprshot](https://github.com/Gustash/Hyprshot) (Using [grim](https://sr.ht/~emersion/grim/) and [slurp](https://github.com/emersion/slurp)) |
| **Image Annotation** | [satty](https://github.com/gabm/Satty) [:gear:](../.config/satty/) |
</details>
<details>
<summary><b>🖥️ CLI/TUI Apps</b></summary>
| 📚 Entry | ✨ App |
| --------------------------- | ------------------------------------------------------------------------------------------------ |
| **Shell** | 💖 [fish](https://fishshell.com/) [:gear:](../.config/fish/) |
| **Terminal Emulator** | 💖 [kitty](https://sw.kovidgoyal.net/kitty/) [:gear:](../.config/kitty/) |
| **Terminal Multiplexer** | [tmux](https://github.com/tmux/tmux) [:gear:](../.config/tmux/) |
| **Shell Prompt** | [starship](https://starship.rs/) [:gear:](../.config/starship/) |
| **Text Editor** | 💖 [neovim](https://neovim.io/) [:gear:](../.config/nvim/) |
| **Shell History** | [atuin](https://github.com/atuinsh/atuin) [:gear:](../.config/atuin/) |
| **CD Replacement** | 💖 [zoxide](https://github.com/ajeetdsouza/zoxide) |
| **LS Replacement** | [eza](https://github.com/eza-community/eza) |
| **Cat Replacement** | [bat](https://github.com/sharkdp/bat) [:gear:](../.config/bat/) |
| **Find Replacement** | [fd](https://github.com/sharkdp/fd) [:gear:](../.config/fd/) |
| **File Manager** | 💖 [yazi](https://yazi-rs.github.io/) [:gear:](../.config/yazi/) |
| **Help Pages** | [navi](https://github.com/denisidoro/navi) / [TLDR](https://tldr.sh/) [:gear:](../.config/navi/) |
| **Fuzzy File Finder** | 💖 [fzf](https://github.com/junegunn/fzf) |
| **Fuzzy Word Finder** | [ripgrep](https://github.com/BurntSushi/ripgrep) [:gear:](../.config/rg/) |
| **Git TUI** | 💖 [lazygit](https://github.com/jesseduffield/lazygit) [:gear:](../.config/lazygit/) |
| **Npm Manager TUI** | [lazynpm](https://github.com/jesseduffield/lazynpm) |
| **Docker TUI** | [lazydocker](https://github.com/jesseduffield/lazydocker) |
| **Arch Package Search TUI** | [pacseek](https://github.com/moson-mo/pacseek) [:gear:](../.config/pacseek/) |
| **Trash CLI** | [gtrash](https://github.com/umlx5h/gtrash) |
| **Update Tool** | [topgrade](https://github.com/topgrade-rs/topgrade) [:gear:](../.config/topgrade/) |
| **Audio Visualizer** | [cava](https://github.com/karlstav/cava) [:gear:](../.config/cava/) |
| **System Monitor** | [btop](https://github.com/aristocratos/btop) [:gear:](../.config/btop/) |
| **GPU Monitor** | [nvtop](https://github.com/Syllo/nvtop) |
| **System Fetch** | [fastfetch](https://github.com/fastfetch-cli/fastfetch) [:gear:](../.config/fastfetch/) |
| **Git Fetch** | [onefetch](https://github.com/o2sh/onefetch) |
| **Keybindings TUI** | [keyb](https://github.com/kencx/keyb) [:gear:](../.config/keyb/) |
</details>
<details>
<summary><b>🖱️ GUI Apps</b></summary>
| 📚 Entry | ✨ App |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| **Music Player** | [Spotify](https://open.spotify.com/) (patched with [Spicetify](https://spicetify.app/)) [:gear:](../.config/spicetify/) |
| **Fallback Text Editor** | [VSCodium](https://vscodium.com/) [:gear:](../.config/VSCodium/User/) |
| **Web Browser** | 💖 [Zen-Browser](https://zen-browser.app) [:gear:](../.config/browser/) |
| **Messaging App** | [Vesktop](https://github.com/Vencord/Vesktop) (Custom Discord Client) [:gear:](../.config/vesktop/) |
| **Email Client** | [Thunderbird](https://www.thunderbird.net/) |
| **PDF Viewer** | [Zathura](https://pwmt.org/projects/zathura/) [:gear:](../.config/zathura/) |
| **Note Taking App** | 💖 [Obsidian](https://obsidian.md/) [:gear:](../.config/obsidian/) |
| **Video Player** | [MPV](https://mpv.io/) [:gear:](../.config/mpv/) |
| **Image Viewer** | [qimgv](https://github.com/easymodo/qimgv) [:gear:](../.config/qimgv/) |
| **File Manager** | [Nemo](https://community.linuxmint.com/software/view/nemo) |
| **Audio Effects** | [Easyeffects](https://github.com/wwmm/easyeffects) [:gear:](../.config/easyeffects/) |
| **Image Editor** | [Krita](https://krita.org/) |
| **VM Manager** | [Virt-Manager](https://virt-manager.org/) ([QEMU](https://www.qemu.org/)) |
| **Recording Program** | [OBS](https://obsproject.com/) [:gear:](../.config/obs-studio/) |
| **Office Apps** | [LibreOffice](https://www.libreoffice.org/) |
</details>
<details>
<summary><b>🔍 Other</b></summary>
| 📚 Entry | ✨ App |
| ------------------------------- | -------------------------------------------------------------------- |
| **Colorscheme** | 💖 [Catppuccin Macchiato](https://github.com/catppuccin/catppuccin) |
| **Font** | [JetBrainsMono Nerd Font](https://www.jetbrains.com/es-es/lp/mono/) |
| **Icon Theme** | [Catppuccin-SE](https://github.com/ljmill/catppuccin-icons) |
| **Dotfiles Manager** | 💖 [yadm](https://yadm.io/) [:gear:](../.config/yadm/) |
| **Automatic System Deployment** | 💖 [Ansible](https://www.ansible.com/) [:gear:](../.config/ansible/) |
</details>
# :wrench: <samp>Setup</samp>
> [!WARNING]
> The installation guide is under construction, try it at your own risk!
>
> It is also ment only for Arch based systems. All other distros are not supported and I will not be helping with issues related to them.
> [!TIP]
> Do you want to only install the neovim config? [Check over here!](https://github.com/Matt-FTW/dotfiles/tree/main/.config/nvim#package-neovim-standalone-config)
## :package: Dependencies Installation
> [!NOTE]
> The names of the packages are from the AUR and Arch Repos; adapt them to your system. Most of the packages are available on other distros official repos (most of the time out-to-date).
>
> To install CLI/TUI specific packages in non-arch based distros, I recommend to use [homebrew](https://brew.sh/).
>
> In the guide, I will be using [Yay](https://github.com/Jguer/yay) as the AUR helper. Be sure to [install it](../.local/bin/installYay) or change the commands to your preferred one.
- **Base Packages**
- **System**
```bash
yay -Sy hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpicker \
swww waybar waybar-updates rofi-wayland swaync wl-clipboard cliphist \
swayosd-git brightnessctl udiskie devify polkit-gnome playerctl \
pyprland grim slurp \
```
- **CLI/TUI**
```bash
yay -Sy fastfetch fzf jq eza fd vivid fish starship ripgrep bat yazi
```
- **GUI Apps**
```bash
yay -Sy pavucontrol satty nemo zathura zathura-pdf-mupdf qimgv-light mpv
```
- **Graphics Drivers**
> [!WARNING]
> Skip this step if you already have the correct drivers for your graphics card.
Chose one if this commands depending on your graphics card brand.
```bash
# AMD (Open Source)
yay -Sy xf86-video-amdgpu xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon vulkan-tools \
opencl-clover-mesa lib32-opencl-clover-mesa libva-mesa-driver lib32-libva-mesa-driver \
mesa lib32-mesa mesa-vdpau lib32-mesa-vdpau vdpauinfo clinfo
# Nvidia (Propietary)
yay -Sy nvidia nvidia-utils nvidia-settings opencl-nvidia lib32-nvidia-utils \
lib32-opencl-nvidia cuda vdpauinfo clinfo
# Intel (Open Source)
yay -Sy xf86-video-intel vulkan-intel lib32-vulkan-intel vulkan-tools libva-intel-driver \
lib32-libva-intel-driver mesa lib32-mesa mesa-vdpau lib32-mesa-vdpau
```
- **Color Theme**
To install the color theme for GTK and QT apps use the following command:
```bash
yay -Sy catppuccin-gtk-theme-macchiato catppuccin-cursors-macchiato \
qt5ct qt5-wayland qt6-wayland kvantum kvantum-qt5 nwg-look
```
- **Icon Theme**
First off, we have to download the icon package from the releases page of their repo. You can do it very easily by using curl.
```bash
curl -LJO https://github.com/ljmill/catppuccin-icons/releases/download/v0.2.0/Catppuccin-SE.tar.bz2
```
Once you have that, its time to extract the compressed package.
```bash
tar -xf Catppuccin-SE.tar.bz2
```
And finally, move them to the ~/.local/share/icons directory.
```bash
mv Catppuccin-SE ~/.local/share/icons/
```
- **Fonts**
Install the following fonts:
```bash
yay -Sy ttf-jetbrains-mono-nerd ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols-mono \
ttf-nerd-fonts-symbols-common ttf-font-awesome noto-fonts-cjk ttf-ms-win11-auto
```
After that, be sure to refresh the font cache:
```bash
fc-cache -fv
```
## :floppy_disk: Dotfiles Installation
> [!CAUTION]
> Here we can take two routes (Yadm or Git). **CHOOSE ONE, NOT BOTH!**
- **Yadm Method** (_Recommended_)
[Yadm](https://yadm.io/) is amazing. It lets you manage your dotfiles with git without the hassle of creating a git repo on your home directory as well as gitignoring a lot of files.
It also lets you pull from the repos that you set up on remote to your local repo and then push to your personal remote.
I'd recommend you to look at it if you want a more personal and advanced config.
For now, we are going to install it the simple way without to many complications and just to have an origin to pull and another to push.
Firstly, **be sure to backup your existing config files**. Then, we are going to install yadm. You can do it using pacman with the following command:
```bash
yay -Sy yadm
```
After that, its time to clone the dotfiles repo into your system using yadm.
> [!IMPORTANT]
> If any file in your local machine differs from the one in the remote repository, your local file will remain unmodified. You'll need to manually review and resolve any differences.
```bash
yadm clone https://github.com/Matt-FTW/dotfiles.git
```
Congratulations, at this point your done installing the configuration! :tada:
Logout from your current desktop session and log back into the Hyprland session.
If you want to pull from my remote, commit or add any files you can do it using yadm and then the git command you want to use (pull, commit, add, etc).
Now, if you want to **add your personal remote**, use the following command:
```bash
yadm remote add origin <url>
```
Then, be sure to push your changes to your remote!
Now you can receive new updates from my repo and modify your custom one :sunglasses:
- **Git Method**
Firstly, clone this repository (remember to have git installed).
```bash
git clone https://github.com/Matt-FTW/dotfiles.git
cd dotfiles
```
Now is time to copy the files into their respective directories. **Be sure to backup your existing configuration files** before copying the files.
Once you have that, its time to copy the config files.
```bash
cp -r .config/* ~/.config/
cp -r .local/bin/* ~/.local/bin/
```
Congratulations, at this point your done installing the configuration! :tada:
Logout from your current desktop session and log back into the Hyprland session.
## :heavy_plus_sign: Post Installation
Here are some things you might consider changing or adding:
- **Change Outputs**
Firstly, change the outputs defined in [this file](../.config/hypr/configs/monitors.conf). They are the ones defined for Hyprland to use, so is very important that you change them. If you wanna know what ID does your monitor has, execute `hyprctl monitors`.
You also need to change the workspaces associated with that monitor. For that, check [this file](../.config/hypr/configs/workspaces.conf).
For more information about Hyprland monitors and workspaces, [check the docs](https://wiki.hyprland.org/).
Now, for the Waybar to appear you also need to change the output definition on [this file](../.config/waybar/config.jsonc).
- **Change Default Applications**
To change the default applications by filetype, be sure to install [this app](https://github.com/magnus-ISU/selectdefaultapplication).
```bash
yay -Sy selectdefaultapplication-fork-git
```
If you wanna change the default apps used in the Hyprland bindings, change the variables over on [this file](../.config/hypr/configs/default_apps.conf).
- **Default Editor**
The default editor is Neovim, but you can change it to whatever editor you want. You only need to edit the [fish variables file](../.config/fish/user_variables.fish), and find where the EDITOR variable is defined.
Here's and example on how to change it to use VSCode.
```fish
# set -xg EDITOR nvim
set -xg EDITOR code
```
- **Git Changes**
If you are going to use git, be sure to change the user definition as well as the credentials over on the [gitconfig file](../.config/git/config).
- **Laptop Additions**
- **Automatic CPU Frequency** (_Recommended_)
This one is a must have for all laptops users, even for desktop pc users as well. Firstly, [install auto-cpufreq](https://github.com/AdnanHodzic/auto-cpufreq):
```bash
yay -Sy auto-cpufreq
```
After that, install the daemon by using this command:
```bash
sudo auto-cpufreq --install
```
If that didn't work, enable the systemd unit:
```bash
sudo systemctl enable --now auto-cpufreq.service
```
Now your good to go, check their documentation for more details on how to configure it. I personally use the default profile it comes with and I didn't had any issues.
- **Bluetooth**
Lets start by installing bluez (Bluetooth support) and overskride (GUI):
```bash
yay -Sy bluez overskride
```
After installing the required packages, we have to start the Bluetooth service:
```bash
systemctl --user enable --now bluetooth.service
```
Now launch overskride and there you have it.
- **Brightness**
Brightness control is integrated with [SwayOSD](https://github.com/ErikReider/SwayOSD) and [brightnessctl](https://github.com/Hummer12007/brightnessctl). Be sure to follow [this steps](https://github.com/ErikReider/>SwayOSD#brightness-control) on the SwayOSD documentation to be able to change the brightness.
If you wanna have automatic screen brightness, install [wluma](https://github.com/maximbaz/wluma).
```bash
yay -Sy wluma
```
Then, enable the systemd unit.
```bash
systemctl --user enable --now wluma.service
```
- **Wi-Fi**
To manage your Wi-Fi connections, I'd recommend you to install [iwgtk](https://github.com/J-Lentz/iwgtk):
```bash
yay -Sy iwgtk
```
Also, you have to enable the iwd service:
```bash
sudo systemctl enable --now iwd.service
```
To manage all the other network configurations, use something like [nm-connection-editor](https://gitlab.gnome.org/GNOME/network-manager-applet)
- **Keyring Support**
There are some applications that you might need the keyring for. Examples: bitwarden, dbeaver, protonmail-bridge, vlc...
To enable the keyring support, install the following packages:
```bash
yay -Sy gnome-keyring libsecret
```
- **Update Everything**
Do you want to have a single tool that help you to update a bunch of different packages from multiple package managers? You can do so with the help of [topgrade](https://github.com/topgrade-rs/topgrade).
```bash
yay -Sy topgrade
```
- **Audio Service** (_Optional_)
> [!WARNING]
> If you have Pipewire already setup on your system, you dont have to follow this step.
Firstly, install this dependencies:
```bash
yay -Sy pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber alsa-utils
```
Now enable pipewire and wireplumber systemd services:
```bash
systemctl --user enable --now pipewire wireplumber
```
And there you have it.
- **Specific Configs/Information** (_Optional_)
Finally, if you want to take a look at some specific app configuration, check the READMEs from each app in their respective config folders.
Some configuration examples are:
- [fish](../.config/fish/)
- [neovim](../.config/nvim/)
- [browser](../.config/browser/)
- [yazi](../.config/yazi/)
- [hyprland](../.config/hypr/)
- [vscodium](../.config/VSCodium/User/)
- [tmux](../.config/tmux/)
If you had any issues feel free to [open an issue](https://github.com/Matt-FTW/dotfiles/issues/new/choose).
Do you have some questions about the installation process? You can create a [new discussion post](https://github.com/Matt-FTW/dotfiles/discussions/new/choose) then. Be sure to read the [FAQ](./FAQ.md) first!
# :camera: <samp>Gallery</samp>
> [!NOTE]
> For specific images and videos about each tool, check out their own READMEs at their respective config folders. (STILL WIP 🚧)
>
> If you want to check the wallpapers, they are available [right here](../.config/hypr/theme/walls/.github/README.md).
| **System Fetch, Pacman Colorscript, App Launcher and Notif. Center** |
| -------------------------------------------------------------------- |
| ![overview-1](./assets/overview-images/overview-1.png) |
| **Text Editor** |
| ------------------------------------------------------ |
| ![overview-2](./assets/overview-images/overview-2.png) |
| **TUI File Manager, ls replacement and System Fetch** |
| ------------------------------------------------------ |
| ![overview-3](./assets/overview-images/overview-3.png) |
| **GUI Text Editor** |
| ------------------------------------------------------ |
| ![overview-4](./assets/overview-images/overview-4.png) |
| **System Fetch, Matrix Script and Browser on [r/unixporn](https://www.reddit.com/r/unixporn/)** |
| ----------------------------------------------------------------------------------------------- |
| ![overview-5](./assets/overview-images/overview-5.png) |
| **Browser with Main Page** |
| ------------------------------------------------------ |
| ![overview-6](./assets/overview-images/overview-6.png) |
| **Lockscreen** |
| ------------------------------------------------------ |
| ![overview-7](./assets/overview-images/overview-7.png) |
| **TUI System Monitor, Doom and Clock Script, ls replacement and Notif. Center** |
| ------------------------------------------------------------------------------- |
| ![overview-8](./assets/overview-images/overview-8.png) |
| **Text Editor and Audio Visualizer** |
| ------------------------------------------------------ |
| ![overview-9](./assets/overview-images/overview-9.png) |
| **File Manager, pipes script and Note Taking App** |
| -------------------------------------------------------- |
| ![overview-10](./assets/overview-images/overview-10.png) |
| **Text Editor and Git UI Manager** |
| -------------------------------------------------------- |
| ![overview-11](./assets/overview-images/overview-11.png) |
| **Audio Visualizer, Fuzzy Finder in a Git Directory and Image Viewer** |
| ---------------------------------------------------------------------- |
| ![overview-12](./assets/overview-images/overview-12.png) |
| **Text Editor** |
| -------------------------------------------------------- |
| ![overview-13](./assets/overview-images/overview-13.png) |
| **Game Platform and Music Player** |
| -------------------------------------------------------- |
| ![overview-14](./assets/overview-images/overview-14.png) |
| **Text Editor** |
| -------------------------------------------------------- |
| ![overview-15](./assets/overview-images/overview-15.png) |
| **Old Browser with Main Page** |
| -------------------------------------------------------- |
| ![overview-16](./assets/overview-images/overview-16.png) |
# :tada: <samp>Credits</samp>
Big thanks to everyone at r/unixporn for inspiring me to make this!
I wanna point out some resources that helped me the most with the setup:
- [ArchWiki](https://wiki.archlinux.org/) for all the awesome documentation and for helping me to not lose my mind.
- [Folke](https://github.com/folke) for his amazing contributions to the Neovim community with some awesome plugins and with the distro that i use: **LazyVim**. Also, his READMEs and [dotfiles](https://github.com/folke/dot) are amazing!
- [Yoru's README](https://github.com/rxyhn/yoru/tree/main) to help me with the distribution of the README.
- [Amadeus Dots](https://github.com/AmadeusWM/dotfiles-hyprland) for helping me with the startup setup of the Hyprland WM.
- [Hyprdots](https://github.com/prasanthrangan/hyprdots) for helping me to take ideas from their work. Also, their setup is the best one I've ever seen for Hyprland; it's pretty awesome!.
- [Catppuccin](https://github.com/catppuccin/catppuccin) for making the **Best Colorscheme Ever** 🖌️
- [Github-issue-templates](https://github.com/stevemao/github-issue-templates) for the some of the markdown templates of the repo.
- [Shina-Fox](https://github.com/Shina-SG/Shina-Fox) for the incredible userChrome.
- [Catppuccin-Startpage](https://github.com/pivoshenko/catppuccin-startpage) an asthetic and clean startpage for the browser.
Those were the biggest inspiring factor for me, though you can find a lot more of setups that helped me in my list of favorite dotfiles from the **Stars** section of my Github Profile: [Check it out!](https://github.com/stars/Matt-FTW/lists/paintbrush-theming-dots)
## :writing_hand: Contributing
Part of what makes the open source community special are the contributions. Any contributions will be **highly appreciated!**
If you have any ideas or suggestions to make, feel free to [open an issue](https://github.com/Matt-FTW/dotfiles/issues/new/choose) or [submit a PR](https://github.com/Matt-FTW/dotfiles/pulls)
Please, before submitting a PR or opening an issue, be sure to follow the [contributing guidelines](./CONTRIBUTING.md), as well as the [issues](./ISSUE_TEMPLATE/) and [pull requests](./PULL_REQUEST_TEMPLATE.md) formatting rules.
Blank or repeated issues and PRs will be closed.
## :dollar: Donating
If you want to support my work, please consider donating.
This is optional, but it's always appreciated.
Thank you! :sparkling_heart:
[![](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&i&color=5b6078&logoColor=D9E0EE&labelColor=302D41)](https://github.com/sponsors/Matt-FTW)
[![](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&color=ed8796&logoColor=D9E0EE&labelColor=302D41)](https://ko-fi.com/matt_ftw)
[![](https://img.shields.io/badge/-buy_me_a%C2%A0coffee-gray?style=for-the-badge&logo=buy-me-a-coffee&color=eed49f&logoColor=D9E0EE&labelColor=302D41)](https://www.buymeacoffee.com/matt_ftw)
## :two_hearts: Star History and Contributors
Thanks to everyone who have contributed and given an star to this project!
<div align="center">
### :pencil2: Contributors
</div>
<a href="https://github.com/Matt-FTW/dotfiles/graphs/contributors">
<img src="https://contrib.rocks/image?repo=Matt-FTW/dotfiles"/>
</a>
<div align="center">
### :star: Star History
</div>
<div>
<a href="https://star-history.com/#Matt-FTW/dotfiles&Timeline">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Matt-FTW/dotfiles&type=Timeline&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Matt-FTW/dotfiles&type=Timeline" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Matt-FTW/dotfiles&type=Timeline" />
</picture>
</a>
</div>
<br>
<div align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true"/>
</div>
> [!NOTE]
> All the information about the Dotfiles is on the documentation website: https://dotfiles-docs.vercel.app/