{"id":20176328,"url":"https://github.com/egnrse/configs","last_synced_at":"2025-09-15T20:27:18.398Z","repository":{"id":261304573,"uuid":"883844565","full_name":"egnrse/configs","owner":"egnrse","description":"my configs for my hyprland setup","archived":false,"fork":false,"pushed_at":"2025-03-02T22:52:57.000Z","size":21048,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T23:27:14.106Z","etag":null,"topics":["bashrc","dunst","hyprland","nvim","tofi","v-editor","vim","waybar","wlogout","zshrc"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/egnrse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-05T17:09:54.000Z","updated_at":"2025-03-02T22:53:00.000Z","dependencies_parsed_at":"2025-01-16T14:03:27.539Z","dependency_job_id":"407d6f53-8372-40c1-9671-6ea666cc8e0d","html_url":"https://github.com/egnrse/configs","commit_stats":{"total_commits":183,"total_committers":1,"mean_commits":183.0,"dds":0.0,"last_synced_commit":"9e87183df735f40c81ba8338c3b877c07fcdd948"},"previous_names":["egnrse/configs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egnrse%2Fconfigs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egnrse%2Fconfigs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egnrse%2Fconfigs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egnrse%2Fconfigs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/egnrse","download_url":"https://codeload.github.com/egnrse/configs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241611821,"owners_count":19990683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bashrc","dunst","hyprland","nvim","tofi","v-editor","vim","waybar","wlogout","zshrc"],"created_at":"2024-11-14T02:08:31.707Z","updated_at":"2025-09-15T20:27:18.378Z","avatar_url":"https://github.com/egnrse.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# some of my configs [WIP]\nTHIS IS STILL DEVELOPING and always will! PR/issues are very welcome.  \n\nThis config is for my arch/[hyprland](https://hyprland.org/) setup. It is made for a Laptop and a PC (in a multimonitor setup, with (sadly) a nvidia graphicscard). Some of those configs I use on my (dualbooted-)windows pc too. (eg. nvim/alacritty)  \n\nMake sure to install the packages needed for this config. (some dependencies are listed in each section, for a *fuller* list look into [#packages](#packages) in the [#Appendix](#appendix))  \n\nThis config uses the [Universal Wayland Session Manager (uwsm)](https://github.com/Vladimir-csp/uwsm) many (hyprland) parts will break without this dependency.  \n\nI use an install script `./installV*.sh` to (sym-)link my local git with the config folders (mostly in `~/.config/`) and move some files around. (Look at the security warning in the file!) [WIP]\n\n![Preview](other/rice_pics/rice2025-01.png)\n\n\n## set up some config syncing\n*(If u fork this first, u can sync and save your own configs)*  \n\n### install script (sym linking) [WIP]\nClone the repo into a folder of your choosing and run the install script `./installV0.sh`.  \n(!! the script is very fragile, change the variables in the script and look what it does !!)  \n(most old files that the script will find it will move to ~/.config/.bak/)  \nCurrently some files still need to be moved manually. Most of them are files outside of `~/.config/`.  \nTODO: make it more interactive (with an -a option?)  \n\n[the old method can be found here](#old-setup-method-git-config)\n\n## Synced configs:\n\u003cdetails\u003e\n  \u003csummary\u003eOverview\u003c/summary\u003e\n\n- [alacritty](#alacritty): (/alacritty/)\n- [bash](#bash):      (/bash/)\n- [bottom](#bottom): (/bottom/)\n- [dunst](#dunst):     (/dunst/)\n- [git](#git):    (/other/.git\\*)\n- [hypridle](#hypridle):  (/hypr/)\n- [hyprland](#hyprland):  (/hypr/)  \n- [hyprlock](#hyprlock):  (/hypr/)\n- [neovim](#nvim): (/nvim/)  \n- [nwg-drawer](#nwg-drawer):    (/nwg-drawer/)\n- [rofi](#rofi):    (/rofi/)\n- [scripts](#scripts):  (/scripts/)  \n- [sddm](#sddm): (/other/sddm.conf)\n- [ssh](#ssh):  (/other/ssh_config)\n- [systemd](#systemd)    (/environment.d/))\n- [tofi](#tofi):     (/tofi/)\n- [vim](#vim):    (/other/.vimrc)  \n- [waybar](#waybar):    (/waybar/)\n- [wlogout](#wlogout):  (/wlogout/)  \n- [zsh](#zsh): (/zsh/)\n- [general Theme](#general-theme): (egnrseTheme.\\*)\n- [misc](#misc):  (/other/\\*)\n\n{program name}: ({path in this git})\n\n- [Appendix](#appendix)\n\t- [some Fixes](#some-fixes--useful-extensions-for-used-packages)\n\t- [Packages](#packages)\n\n\u003c/details\u003e\n\nwanting to add:\n- nothing rn\n\n\n### [alacritty](https://alacritty.org/config-alacritty.html)\n*(/alacritty/)*  \nThis file has some visual changes to make alacritty more beautiful.  \n\n\u003cdetails\u003e\u003csummary\u003eDeprecated Win10 support\u003c/summary\u003e\n\nin win10 add: (does **NOT** work yet)  \n```\n[general]\nimport = [\"../../Local/alacritty/alacritty.toml\"]\n```\nto `%APPDATA%\\alacritty\\alacritty.toml`  \n\u003c/details\u003e\n\n\n### bash\n*(/bash/ /shell/\\*)*  \nMy config is split into multiple parts:  \n- custom.bashrc (general settings)  \n- maps.inputrc (custom key mappings)\n- ../shell/\\* (settings used by all shells)  \n- [~/.bashrc (for device specific settings, not fully in this git)]  \n\n\u003cdetails\u003e\u003csummary\u003eMore Info\u003c/summary\u003e\n\nadd this to your `~/.bashrc` (or similar) to source the files:\n```\n# fetches the config file for bash (if it exists)\n# $customBashConfig_path is the path to the custom config file\ncustomBashConfig_path=\"$HOME/.config/bash/custom.bashrc\"\nif [ -f \"$customBashConfig_path\" ]; then\n\tsource $customBashConfig_path\nelse\n\techo \"path to config not found ($customBashConfig_path)\"\nfi\n```\nSome more infos are in the files.  \n(be careful when setting environment variables)  \n\nI use `trash-d`\u003csup\u003eAUR\u003c/sup\u003e as a drop in replacement for `rm` (TODO: look into autotrash\u003csup\u003eAUR\u003c/sup\u003e)\n\u003c/details\u003e\n\n### [bottom](https://github.com/ClementTsang/bottom)\n*(/bottom/)*  \nConfig for a graphical process/system monitor for the terminal. You can launch it by running `btm` or (within this config) by pressing `Ctr+Shift+Esc`.  \n\n\u003cdetails\u003e\u003csummary\u003eDetails\u003c/summary\u003e\n#### Keymappings\n`?`     : open help menu  \n`e`     : focus/fullscreen current selection  \n`q`     : close  \n`Esc`   : unfullscreen / close dialogs, search  \n`+-=`   : zoom in/out/reset  \nin Processes:  \n`/`      : search  \n`dd`     : send a signal to the selected process  \n\u003c/details\u003e\n\n\n### [dunst](https://dunst-project.org/)\n*(/dunst/)*  \nA notification (service) daemon, after cloning and installing this git, all files should already be linked correctly (some explanations for the options are in the file)  \nSome settings only work on X11! (those are be marked)  \nThere is a custom script `restartDunst.sh` that restarts dunst and sends some notifications (if any `$1` is given), to easily test changes in dunstrc.  \n\n\n### git\n*(/other/.gitconfig, /other/.gitignore_global, /other/.gitconfig_custom)*  \nSource `.gitconfig_custom` in your `~/.gitconfig`:\n```\n[include]\n\tpath = ~/.gitconfig_custom\n```\nIt has useful aliases, a global .gitignore and other misc settings.\n\nA example `~/.gitconfig` is in `/other/.gitconfig`. Replace the placeholders if needed (eg. {email}, {computerName}).  \n(fully replacing your old config-file is **not** recommended)  \n\n\n### hypridle\n*(/hypr/hypridle.conf)*  \nAn idle deamon. To start it automatically on system startup (with systemd) run:  \n`systemctl --user enable --now hypridle.service`  \nNeeds: [hyprland](#hyprland) [hyprlock](#hyprlock)  \n\n### [hyprland](https://hyprland.org/)\n*(/hypr/)*  \nA wayland native (tiling/hybrid) window manager.  \nThis config is split into 4(+) parts:  \n- hyperland.conf (the main config file)  \n- look-feel.conf (animations, borders, gaps, ...)\n- window-rules.conf (rules on how windows/layers/workspaces/apps behave)  \n- maps.conf      (key mappings)\n- plugins.conf\t (plugins, including plugin keymappings) (non are used currently)  \nMany explanations are in the config files.  \n\nThis config uses the [Universal Wayland Session Manager (uwsm)](https://github.com/Vladimir-csp/uwsm)  and many parts will not work with out this dependency.  \nSee `https://wiki.hyprland.org/Useful-Utilities/Systemd-start/`  \n! This config DISABLES touch devices !  \n\n\u003cdetails\u003e \u003csummary\u003eKeymappings:\u003c/summary\u003e\n\n#### Keymappings\n`SUPER+CTR+L`   : close/exit/logout-menu (wlogout)  \n`SUPER+Q`       : opens $terminal (alacritty)  \n`SUPER+E`       : opens File Browser (dolphin)  \n`SUPER+R`       : run a program (tofi)  \n`SUPER+C`       : close active window  \n  \n`SUPER+[1-0]`   : go to workspace [1-10]  \n`SUPER+S`       : go to special workspace  \n`SUPER+SHIFT+[1-0]` : move current window to workspace [1-10]  \n`SUPER+CTRL+[1-0]` : move current window to workspace (silently) [1-10]  \n`SUPER+SIFT+S`  : move current window to special workspace  \n  \n`SUPER+V`       : toggle floating (for the active window)  \n`SUPER+P`       : pin the active windows (to stay visible on all workspaces)  \n`SUPER+O`       : toggle split Orientation (how the (old) window was split)    \n`SUPER+I`       : switch split side  \n`SUPER+M`       : maximize active window (keep borders/bars)  \n`F11`           : make active window fullscreen  \n\n`SUPER+D`       : program drawer (nwg-drawer)  \n*(for more keymappings look into /hypr/maps.conf or /hypr/plugins.conf)*  \n\nMove windows with `SUPER+LeftMouse`/`SUPER+Space`, resize them with`SUPER+RightMouse`/`SUPER+ALT+Space` (use `SHIFT` to keep the aspect ratio) or right-clicking on the edges and dragging.  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003ePlugins/Extensions:\u003c/summary\u003e\n\n#### [Hyprswitch](https://github.com/H3rmt/hyprswitch)\n*(/hyprswitch/)*  \nCLI/GUI to switch between window in hyprland (`hyprswitch`\u003csup\u003eAUR\u003c/sup\u003e)  \nThe daemon should get started with hyprland. There is also a custom script `restartHyprswitch.sh` to (re-)start the hyprswitch daemon.\nNeeds: egnrseTheme.css hyprswitch\u003csup\u003eAUR\u003c/sup\u003e  \n\n#### not used anymore:\n- [Hyprspace](https://github.com/KZDKM/Hyprspace)\nwindow overview (`SUPER+Tab`)(not used anymore)\n- [hypergrass](https://github.com/horriblename/hyprgrass)\nbetter touch-screen support (not used anymore)\n\n\u003c/details\u003e\n\nHyprland needs: uwsm\u003csup\u003eAUR\u003c/sup\u003e alacritty tofi\u003csup\u003eAUR\u003c/sup\u003e waybar xdg-terminal-exec\u003csup\u003eAUR\u003c/sup\u003e wlogout\u003csup\u003eAUR\u003c/sup\u003e dunst dolphin nwg-drawer bottom pa-notify\u003csup\u003eAUR\u003c/sup\u003e  \nWorks nicely with: hypridle hyprlock xdg-desktop-portal-hyprland  \n\n\n### hyprlock\n*(/hypr/hyprlock.conf)*  \nA screen lock config. It needs `egnrseTheme.conf` for the colors.  \n\n### [ianny](https://github.com/zefr0x/ianny)\n*(/io.github.zefr0x.ianny/)*  \nUtility that periodically informs the user to take breaks. Change the reminder periods in `./io.github.zefr0x.ianny/config.toml`.  \nShould get started with hyprland. There is also a custom script `restartIanny.sh` to (re-)start Ianny.  \n\n### [nvim](https://neovim.io/)\n*(/nvim/)*  \nSome explanations of the settings are in the files. The setup Leader-Key is Space. (meaning: some shortcuts start with the Space-Key)  \n- Main setup in `init.lua`  \n- Custom keymapings in `lua/maps.lua`  \n- Lazy Plugin Manager in `lua/config/lazy.lua` (type `:Lazy` within nvim for the plugin menu)  \n  Settings for the plugins are in their files (`lua/plugins/*.lua`)  \n  - bufferline (top bar with *file* tabs)\n  - cmp (autocompletion)\n  - colorscheme (tokyodark)\n  - lualine (status line)\n  - lush (color schemecreator, not used yet)\n  - markdown (some inline rendering)\n  - nvim-autopairs (autocomplete brackes and more)\n  - nvim-lint (linting (eg. marking wrong code) WIP)\n  - [nvim-tree](https://github.com/nvim-tree/nvim-tree.lua) (file explorer) {Leader+E}\n  - misc (eg. nvim-colorizer)\n\nLinting is still a WIP. You might need a bash-language-server.  \n\n### [nwg-drawer](https://github.com/nwg-piotr/nwg-drawer)\n*(/nwg-drawer/)*  \nA program drawer with math / filesearch (currently disabled for performace reasons) support. Same usage as tofi, but slower and more graphical (eg. program icons/categories)  \nIs silently started with some custom options when hyprland starts. You can also find those options in the `restart-nwg-drawer.sh` script.  \nUse the math function by searching for eg. `8*4`. The answer will be shown in a popup when pressing `ENTER`.  \nNeeds: egnrseTheme.css  \n\n### [rofi](https://github.com/lbonn/rofi)\n*(/rofi/)*  \nSimilar to tofi, used for the custom wifimenu (of waybar). For wayland use the `rofi-wayland` package (and NOT `rofi`).  \n\n### scripts\n*(/scripts/)*  \nSome of my custom scripts used by other configs (eg. waybar, hyprland).  \nThis config expects to find them in `$HOME/.local/share/bin/scripts`.  \n\nSome scripts have settings/dependencies that are written in the top of the scripts. Some of the scripts will warn about and handle missing dependencies gracefully. (sadly not all of them yet)  \n\nGeneral Needs (for some of the scripts):\n- wayland\n- [hyprland](#hyprland)\n- a notification daemon (eg. [dunst](#dunst))\n- pacman-contrib\n\n### [sddm](https://github.com/sddm/sddm)\n*(/other/sddm.conf)*  \nA display manager for X11 and Wayland sessions. I use it to login into accounts and select which compositer I want to use. It also allows me to select which compositor to login into, in the bottom left corner. (I also have KDE-Plasma installed (from the `plasma-meta` package))  \nU can also select hyprland with and without uwsm, this config expects to be started *managed by uwsm*.  \nCopy the config to `/etc/sddm.conf.d/sddm.conf`. If there are other config files already there, make sure sddm will read it last (see `man 5 sddm.conf`).  \nA easy way to style sddm is with the KDE-System-Settings.  \n(TODO: look into QtQuick for theme design, fix onscreen-keyboard env? kde_wayland?)  \nNeeds: breeze (the theme used)  \n\n### ssh\n*(/other/ssh_config)*  \nSome custom ssh settings. Needs to be included in `~/.ssh/config` (after copying the file).\n```\nInclude ~/.ssh/ssh_config\n```\n\n### systemd\n*(/environment.d/)*  \nSome environment variables for systemd. Prob. not well done currently. (!! is setting wayland variables !!)\n\n### [tofi](https://github.com/philj56/tofi)\n*(/tofi/)*  \nA (very fast) wayland app launcher, with two themes. Select which one is active in `config`. `oldConf` has more explaining comments.  \nNeeds: `/usr/share/fonts/TTF/DejaVuSansMNerdFont-Regular.ttf` (look into [Nerd-Font](#nerd-font))\n\n### vim\n*(/other/.vimrc)*  \nThis is a ~~very simple~~ setup that I use, when I can't use nvim. The Leader-Key is Space. (meaning: some shortcuts start with the Space-Key)    \nCopy the file to `~/`, some infos are in the file. I use Plug as a Plugin Manager, it should autoinstall itself. This configs should work on Win10 and Linux.  \n\n\u003cdetails\u003e\u003csummary\u003esome Settings/usage Help\u003c/summary\u003e\n\t\nCurrently, all settings are in one file (`~/.vimrc`)  \nPlugins:\n- [lightline](https://github.com/itchyny/lightline.vim) (statusline)\n- vim-markdown\n- [NERDTree](https://github.com/preservim/nerdtree) (file explorer) {Leader+E}\n- [vim-autotag](https://github.com/craigemery/vim-autotag) (update [ctags](#ctags) on file save)\n\nFor how to use [ctags](https://github.com/universal-ctags/ctags) look into [#ctags](#ctags) under [Misc](#misc).  \n\nThe config file explains it the best, but...  \nSome key mappings: (remember \u003cleader\u003e = Space)  \n`Ctr-s`         : save file (buffer)  \n`\u003cleader\u003etn`    : new tab (functions like tabs in eg. vscode)  \n`\u003cleader\u003e\u003cTab\u003e` : switch to next tab (functions like tabs in eg. vscode)  \n`\u003cleader\u003etd`    : close tab (tab delete)  \n`\u003cleader\u003etD`    : force close tab (tab delete!)  \n`\u003cleader\u003ebn`    : switch to next buffer(= open file) (in the current tab) (buffer next)  \n`\u003cleader\u003ebd`    : close current buffer (buffer delete)  \n`\u003cleader\u003ebD`    : force close current buffer (buffer delete!)  \n`Ctr- hjkl`     : move to the buffer window in this direction (like `Ctr-W hjl`)  \n`\u003cleader\u003e|`     : split window vertically (`Ctr-W v`)  \n`\u003cleader\u003e-`     : split window horizontally (`Ctr-W s`)  \n`\u003cleader\u003ewm`    : maximize window   \n`C-Arrows`      : resize current window  \n`\u003cleader\u003eth`    : open a terminal in a new horizontal split (terminal horizontal)  \n`\u003cleader\u003etv`    : open a terminal in a new vertical split  \n`\u003cEsc\u003e\u003cEsc\u003e`    : exit terminal mode, close popups  \n`\u003cleader\u003e}`     : open definition in a preview window (`Ctr-W }`)  \n`C-e`           : toggle filemanager  \n`:Q`            : close all (qa)  \n\n`/pattern`      : search for `pattern`  \n`*`             : search for focused word  \n`n/N`           : next/previous search result  \n`:noh`          : disables search highlighting (no highlight)  \n`Ctr-N`         : (cycle/show) autocompletion  \n`Ctr-P`         : cycle/show autocompletion from the back  \n`%`             : go to matching bracket  \n`gd/gD`         : go to declaration (local/global)  \n`Ctr-]`         : jump to tag (eg. function/variable definition)  \n`Ctr-T`         : jump back (from tags)  \n`50G`           : jump to line 50  \n`gg/G`          : jump to start/end of file  \n`Ctr-o`         : jump the jumplist back  \n`Ctr-i`         : jump the jumplist forward  \n`Ctr-W }`       : open definition in a preview window (close it with `Ctr-W z`)  \n`Ctr-W ]`       : open definition in a new window (switch window)  \n`Ctr-W n`       : open a new empty window  \n`Ctr-W c`       : close current window  \n`Ctr-W o`       : close (all) other windows  \n`Ctr-W r`       : rotate all windows  \n`Ctr-W :`       : same as typeing `:` (also works in the command line)  \n`[i`            : shows first mention in file in command line (show identifier)  \n`[I`            : shows ALL mentions in a file in the command line  \n`Ctr-R =`       : in INSERT mode, calculate the next thing u type and inserts it  \n`:%s/pat/rep/gc`: search and replace all instances of `pat` with `rep` (g: globally, c: ask before each (choice))  \n`K`             : open man/help page of focused command  \n`:ls/:tabs`     : list open buffer/tabs  \n\n\u003c/details\u003e\n\n### [waybar](https://github.com/Alexays/Waybar)\n*(/waybar/)*  \nA wayland statusbar, with some custom scripts for extra functionality. U can right/left-click or scroll on many modules.  \nThere is a custom script `reloadConfig.sh` that reloads the configuration, to easily test changes for waybar.\nThere is also a custom wifimenu, a custom package update helper and many other features.  \n\nThe config is split into multiple parts:\n- config.jsonc (main config)\n- modules.jsonc (settings for most modules)\n- modules/*  (settings for all other modules)\n- style.css (styling)\n- theme.css (colors used by style.css, imports `egnrseTheme.css`)\n- scripts  (some scripts for extra functionality)\n\n\u003cdetails\u003e \u003csummary\u003eNeeds:\u003c/summary\u003e\n\t\n- uwsm\u003csup\u003eAUR\u003c/sup\u003e (for some app starts)\n- `scripts/` (some scripts from this gits scripts folder)\n- egnrseTheme.css (in this git)  \n- [wlogout](#wlogout) (custom powermenu)\n- wayland\n- hyprctl (included in hyprland)\n- a notification service (eg. [dunst](#dunst))\n- rofi-wayland (for the custom wifi-menu, u can also mostly use rofi)\n- networkmanager\n- blueman-manager (bluetooth gui)\n- wireplumber (audio-server, config has to be changed for it to work with ALSA only)\n- pwvucontrol\u003csup\u003eAUR\u003c/sup\u003e helvum coppwr(flatpak) (audio-management gui)\nOthers: jq playerctl  \n\n\u003c/details\u003e\n\n### wlogout\n*(/wlogout/)*  \nA wayland PowerMenu (to logout/shutdown/...). theme-1 is longer (6 items), theme-2 only 4 has options. Both themes have a layout-\\* file and a styles-\\*.css.  \nU can use `/scripts/logoutlaunch.sh` (with args $1 being 1 or 2) to launch those themes. They (should) scale automatically with display size and scaling.  \nNeeds: egnrseTheme.css hyprland uwsm hyprlock  \n\n### zsh\n*(/zsh/)*  \nMy config is split into multiple parts:  \n- custom.zshrc (general settings)\n- maps.shrc (custom key mappings)\n- completions/\\* (custom completion functions)\n- ../shell/\\* (settings used by all shells)  \n- [~/.zshrc (for device specific settings)]\n\nsome Features:  \n- `Shift+Tab`: fzf search completion\n- `jd dir`: jump directory (similar to cd) with [zoxide](https://github.com/ajeetdsouza/zoxide) (remembers folders, so that u can directly go to them)\n- `jdi`: interactive jump directory\n- press Esc twice to prepend `sudo` to a command\n\n\u003cdetails\u003e\u003csummary\u003eMore Info\u003c/summary\u003e\nadd this to your `~/.zshrc` (or similar) to source the files:\n\n```\n# fetch the custom config file for zsh (if it exists)\n# customZshConfig_path is the path to the config file\ncustomZshConfig_path=\"$HOME/.config/zsh/custom.zshrc\"\nif [ -f \"$customZshConfig_path\" ]; then\n\tsource $customZshConfig_path\nelse\n\techo \".zshrc: path to config not found ($customZshConfig_path)\"\nfi\n```\n\nChange the standart terminal to zsh with:  \n`chsh -s /bin/zsh elia` (with `elia` being your username)  \nBe sure to have `zsh` installed! (and u are using the correct location)  \n\u003c/details\u003e\n\nI use `trash-d`\u003csup\u003eAUR\u003c/sup\u003e as a drop in replacement for `rm`.  \nInfos about the settings used are in the files.  \nNeeds: zoxide fzf  \n\n\n### general Theme\n*(egnrseTheme.\\*)*  \nstill a work in progress  \nThe Idea is to have one file where I can change all colors for all apps/packages I use. Currently, I use 3: egnrseTheme.css/\\*.conf/\\*.sh . In many configs the colors are still hardcoded. (eg. dunst, tofi, rofi, some waybar modules)  \n\n\n### Misc\n\u003cdetails\u003e\u003csummary\u003eOther things that might be useful (mostly in the other folder).  \u003c/summary\u003e\n\n#### onScreen Keyboard\n*(/other/wvkbd-laptop\\*)*  \nPut the binary `wvkbd-laptop` in a directory on the path (eg. `/usr/local/bin/`) to use it system-wide (hyprland/sddm/the desktop-entry expect that)  \nPut the desktop-entry `wvkbd-laptop.desktop` in eg. `~/.local/share/applications/` (or follow the instructions in the file).  \nSwipe with one finger from the bottom to the left edge (on a touch screen) to toggle the keyboards visibility. (within [hyprland](#hyprland) with the hyprgrass plugin)  \n\n#### xdg-terminal-exec\n*(/xdg-terminals.list)*  \nSet your standart terminal for `xdg-terminal-exec`\u003csup\u003eAUR\u003c/sup\u003e in the file `xdg-terminals.list` (is not in the xdg standart yet). Also look into [#set Standart Terminal Emulator](set-standart-terminal-emulator).  \nNeeds: xdg-terminal-exec\u003csup\u003eAUR\u003c/sup\u003e\n\n#### mimeapps.list\n*(/mimeapps.list)*  \nSet your default applications here (for different filetypes). You can also do this with the KDE-System-Settings or  \nan easer way to do this is using a filemanager like `Nemo`:  \n`Right Click a file \u003e select *Open With* \u003e *Other Application...* \u003e ` select the application u like and press *Set as default*  \nThis will also change the mimeapps.list file.  \nu can find the mime-type of a file using `xdg-mime query filetype {FILE}`.\nAlso look into [#set Standart Terminal Emulator](set-standart-terminal-emulator).  \nSadly, some application (eg KDE stuff) breakes the hardlink (between this config and the actual file), so you might have to update the file in `~/.config/mimeapps.list`.  \n\n#### Dolphin\n*(/other/servicemenus/\\*)*  \nSome files in the `other` folder are for Dolphin (KDE). To use them look into the files or look at [Dolphin](#dolphin-filemanager) under [Fixes](#some-fixes--useful-extensions-for-used-packages)  \n\n#### screenshot utility\n*(/scripts/screenshot.sh, /other/screenshot.desktop)*  \nDesktop entry (called `Snip Screen`) to trigger a screen shot with `grim` and `slurp`.  \nTODO: more possible modes?\n\n#### ssd daemon (sshd)\n*(/other/50-custom-sshd.conf)*  \nA secure'ish sshd config, put the config-file into `/etc/ssh/sshd_config.d/`. You might need to run `ssh-keygen -A` to generate the keys needed for the daemon.\nYou will need to change the allowed users if you want to connect with a different account than 'elia'. Only connections from localhost (127.0.0.1) and from a localnetwork ip address are allowed. I have a private [zerotier-one](https://www.zerotier.com/) network that I allow connections from too.  \nTo setup your first connection, disalbe `PasswordAuthentication no` and `AuthenticationMethods publickey` as they only allow signing in with a publickey.  \nI used [ssh-audit](https://github.com/jtesta/ssh-audit) to try to make my system more secure.  \n\n#### [ctags](https://github.com/universal-ctags/ctags)\n*(none currently)*  \nA way to eg. jump to definitions in vim/nvim. Needs an implementation of `ctags` installed to work.  \nIf u want to use it in a project, run the following in the root project folder:  \n```\nctags --extras=+q -R -f .tags .\n\n```\nThis genereates a `.tags` file, which is used by eg. vim. (-R: index subfolder recursively, +q: index class members)  \n(Also look at [its man page](https://man.archlinux.org/man/ctags.1.en))  \n\n#### 'old' folder\n*(/other/old/\\*)*  \nEverything in here is not in active use anymore with no idea if I will need it for sth. later on.  \n\n#### [Nerd-Font](https://www.nerdfonts.com)\n*(/other/DejaVuSansMono.zip)*  \nThe font used by some of the configs in this git.  \nDownload it or install it over pacman: `ttf-dejavu-nerd`  \n\n\u003c/details\u003e\n\n# Appendix\n\n### some fixes / useful extensions (for used packages)\n\n\u003cdetails\u003e \u003csummary\u003eExpand?\u003c/summary\u003e\n\n#### Electron Apps\nIf apps are blurry (on wayland) it might be using Xwayland, you can fix this by adding the following to the launch-command of the app:  \n(the launch command prob. is in `/usr/bin/{APP}`)  \n`--enable-features=UseOzonePlatform --ozone-platform=wayland`  \n\n#### set Standart Terminal Emulator\nThere sadly currently isn't a standardized way of doing that.  \nThings that (kinda) work though:  \n- Set the environment variable $TERMINAL (eg. in `~/.bashrc` with `TERMINAL=alacritty`)\n- Use the mime-type for terminals (u can add them in `~/.config/mimeapps.list`). It is `x-scheme-handler/terminal=Alacritty.desktop`.  \n- Use `xdg-terminal-exec`\u003csup\u003eAUR\u003c/sup\u003e to launch terminal applications ([Docs here](https://github.com/Vladimir-csp/xdg-terminal-exec)). Look into the file [xdg-terminals.list](./xdg-terminals.list) for how to configure and more information. ([rust implementation](https://codeberg.org/mkhl/xdg-terminal-exec))  \n- For gnome (applications) use the xdg-terminal-exec method AND look at the [Nemo](#nemo-filemanager)  \n- For KDE (applications) look at [Dolphin](#dolphin-filemanager).\n\n#### Waterfox\nWhen using the `waterfox-bin` package, I had some organization policies set. You can change them in `/opt/waterfox/distribution/policies.json`.  \nTo let the `KeepassXC-Browser` Plugin find KeepassXC u can copy the `native-messaging-hosts/` folder from `~/.mozilla` to `~/.waterfox` (given you have firefox installed, and the browser support (for firefox?) in KeepassXC enabled)  \nActivate **Hardware video acceleration** on nvidia with `libva-nvidia-driver` (We need the VA-API). Test if it worked with 'vainfo' from `libva-utils` (see [Wiki](https://wiki.archlinux.org/title/Hardware_video_acceleration#Verification)). Set in `about:config` in waterfox `media.ffmpeg.vaapi.enabled` to `true` (see [here](https://wiki.archlinux.org/title/Firefox#Hardware_video_acceleration)).  \nDisable `Ctr+Q` for close: `about:config` \u003e `browser.quitShortcut.disabled`= `true`  \n\n#### [Thorium](https://thorium.rocks/)\nthorium-browser-bin\u003csup\u003eAUR\u003c/sup\u003e\nTo active native wayland use `--ozone-platform-hint=auto` as a startup flag or set `Preferred Ozone platform` to auto within the `chrome://flags/` menu (put the previous thing into the URL field of thorioum).  \n\n\n#### Dolphin (filemanager)\nSet the standart terminal for dolphin in `~/.config/kdeglobals` with:\n```\n[General]\nTerminalApplication=alacritty\nTerminalService=Alacritty.desktop\n```\nFirst row the command, second row the desktop-entry.  \n\nTo build/update the KDE **desktop-entry cache** (that Dolphin needs to find programs):\n- have the `archlinux-xdg-menu` package installed\n- run: `XDG_MENU_PREFIX=arch- kbuildsycoca6 --noincremental`\n(kbuildsycoca6 is part of the kservice package, which is a dependency of dolphin)  \n\nThis fixes dolphin not finding programs. **This function is in the rightclick menu of dolphin** (if u put the files from `/other/servicemenus` in the correct place).  \nThere is also a pacman-hook (`/other/updateKDEcache.hook`) to speed up this process.  \n\n**Extensions**\n- `kio-admin` (sudo for dolphin)  \n- `ark` (zip/tar support)  \n- `dolphin-plugins` (git/mercurial/dropbox support, needs to be activated within the *Context Menu* Settings)  \n\n(see more in the [AchWiki Article](https://wiki.archlinux.org/title/Dolphin))\n\nTo launch Dolphin (from the terminal) in the current directory use: `dolphin .`\n\n\n#### Nemo (filemanager)\nchange the standart terminal to alacritty:  \n`gsettings set org.cinnamon.desktop.default-applications.terminal exec alacritty`  \nfix running shell-scripts with alacritty (needs the option -e):  \n`gsettings set org.cinnamon.desktop.default-applications.terminal exec-arg e`  \nmore in the [ArchWiki-Nemo](https://wiki.archlinux.org/title/Nemo)  \n\n\n#### Pacman / Steam\nIn `/etc/pacman.conf` I enable `ParallelDownloads = 5` and the `multilib` library (multilib is required for the `steam` package).  \nOther nice options: Color\n(just remove the `#` before the lines)  \nI used `rankmirrors` to rank the mirrors I chose in `/etc/pacman.d/mirrorlist`.\n\n#### VLC Media Player\nIf the environment variable $DISPLAY is set, VLC will use X11 to display itself. (Because it is a bit buggy)  \nTo force VLC to use wayland, you can change the line with `Exec=` in `/usr/share/applications/vlc.desktop` to:  \n`Exec=env -u DISPLAY /usr/bin/vlc --started-from-file %U`  \nThis will preserve the environment variable globally while unsetting it for VLC.  \n\n#### Flatpak\nInstall software from flathub with `discover` (kde software), manage flatpak permissions graphically with Flatseal(flatpak).  \nBellow some maybe useful flatpak commands:  \n```\nflatpak list\nflatpak run APP-ID\nflatpak run --command=COMMAND APP-ID ARGS\nflatpak install NAME\n\n```\n\n#### Sunshine\nThe Flatpak doesn't have the right permission.  \nFollow the Arch Linux install in: `https://docs.lizardbyte.dev/projects/sunshine/latest/about/setup.html`  \nThen do: `sudo setcap -r $(readlink -f $(which sunshine))`  \nInstall all dependencies that sunshine needs. Symlink all libs that have the wrong version to the installed one. (in `/usr/lib`: sudo ln -s ./lib\\*.so ./lib\\*.so.1.83.0)\n\n#### [Mailvelope](https://github.com/mailvelope/mailvelope) (browser extension)\nConnect to the local `gpgme` install:  \n- create one of the following files ([see also here](https://github.com/mailvelope/mailvelope/wiki/Creating-the-app-manifest-file-on-macOS-and-Linux)):\n\n```\n~/.mozilla/native-messaging-hosts/gpgmejson.json\n~/.waterfox/native-messaging-hosts/gpgmejson.json\n~/.config/google-chrome/NativeMessagingHosts/gpgmejson.json\n\n```\nwith the following content (for firefox based):\n```\n{\n    \"name\": \"gpgmejson\",\n    \"description\": \"JavaScript binding for GnuPG\",\n    \"path\": \"/usr/bin/gpgme-json\",\n    \"type\": \"stdio\",\n    \"allowed_extensions\": [\"jid1-AQqSMBYb0a8ADg@jetpack\"]\n}\n```\n- reload the mailvelope extension\n- select under `Options \u003e General \u003e OpenPGP Preferences` GnuPG \n- now you should see your keys under `Key Management` (if you select `GnuPG` and not `Main Keyring`)\n\n\n#### xdg-desktop-portal\nSet you prefered portal in `/usr/share/xdg-desktop-portal/DESKTOP-portals.conf`, where `DESKTOP` is the name of the used compositor. (eg. `hyprland-portals.conf`)  \nYou can set multiple ones. The first (listed) portal which implements an interface is used for that interface. The file should look like:\n```\n[preferred]\ndefault=hyprland;gtk;kde\n```\nYou can see all installed portals in `/usr/share/xdg-desktop-portal/portals`. [more in the ArchWiki](https://wiki.archlinux.org/title/XDG_Desktop_Portal)  \n[Hyprland issue](https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/252)\n\n#### Matlab (deprecated)\nLook into the file [/other/matlabStart.sh](./other/matlabStart.sh) and look into [ArchWiki-Matlab](https://wiki.archlinux.org/title/MATLAB).  \nI used the installer for linux from: [mathworks-download](https://de.mathworks.com/downloads/).\n\n\n\u003c/details\u003e\n\n---\n\n### cool/useful Packages\nzerotier-one  \njoplin-desktop\u003csup\u003eAUR\u003c/sup\u003e  \nbeeper-latest-bin\u003csup\u003eAUR\u003c/sup\u003e  \n[coppwr](https://dimtpap.ovh/coppwr) (flathub)  \n[sonusmix\u003csup\u003eAUR\u003c/sup\u003e](https://codeberg.org/sonusmix/sonusmix)  \n[xdg-terminal-exec-mkhl\u003csup\u003eAUR\u003c/sup\u003e](https://codeberg.org/mkhl/xdg-terminal-exec) (feels slower than xdg-terminal-exec though)  \n[ssh-audit](https://github.com/jtesta/ssh-audit)  \n\n---\n\t\n### Packages\n\u003cdetails\u003e \u003csummary\u003eSome of the packages I use:\u003c/summary\u003e\n\n#### basics\nbase-devel neovim vim git sudo grub openssh efibootmgr  \nman-db man-pages\t\t\t\t\t\t(man pages)  \nntfs-3g exfat-utils \t\t\t\t\t(filesystem types)  \nnetworkmanager blueman waypipe\t    (internet/networking/bluetooth)  \nflatpak wget pacman-contrib devtools yay\u003csup\u003eAUR\u003c/sup\u003e\t\t(package managing)  \npipewire pipewire-docs wireplumber wireplumber-docs helvum pwvucontrol\u003csup\u003eAUR\u003c/sup\u003e (audio)  \nwaybar dunst rofi-wayland nwg-drawer hypridle hyprlock wlogout\u003csup\u003eAUR\u003c/sup\u003e tofi\u003csup\u003eAUR\u003c/sup\u003e (statusbar, notifications, app-launcher, lock screen)  \npolkit-kde-agent wl-clipboard trash-d\u003csup\u003eAUR\u003c/sup\u003e zsh zoxide fzf (utilities)  \nfirefox alacritty konsole dolphin  \nttf-dejavu-nerd fastfetch rclone zerotier-one  \n\n#### window manager\nplasma-meta hyprland sddm (kde, tiling WM, login)  \nwayland-protocols wayland-utils uwsm\u003csup\u003eAUR\u003c/sup\u003e (managing wayland-WM)  \nxdg-desktop-portal-hyprland xdg-desktop-portal-gtk (set them in /usr/share/xdg-desktop-portal/hyprland-portals.conf)  \n\n#### misc\nbash-language-server ctags (lsp)  \nkio-admin ark dolphin-plugins archlinux-xdg-menu kdegraphics-thumbnailers libappimage (dolphin stuff)  \nhunspell-en_US speech-dispatcher (waterfox)  \nunzip zip  \nlibreoffice-fresh prismlauncher appimagelauncher nheko mission-center kdeconnect  \nstrawberry vlc kalgebra kcalc godot-mono blender cuda  \n\n#### from AUR\nxdg-terminal-exec ttf-ms-win10-auto hyprswitch ianny v-editor-git (default terminal, win fonts)   \nspotify vesktop beeper-latest-bin anki-bin (discord client, msg client)   \nwaterfox-bin thorium-browser-bin  pa-notify (browser, notification on loudness change)   \n#### from Flatpak\n(replace '\\_' with spaces)  \nkeepassXC joplin bottles OBS_Studio moonlight coppwr tor_browser_launcher flatseal gimp  \n#### from somewhere else\nsunshine matlab  \n\n\u003c/details\u003e\n\n---\n\n### other useful (git) commands:\n`git config core.sparseCheckout true` : can also add single files to the sparsity list (not only directories)  \n`git config --global core.editor \"nvim\"`  \n`git config status.showUntrackedFiles no`  \n`git sparse-checkout list`  \n`git read-tree -mu HEAD` : reload current files from tree\n`git remote set-url origin github.com:egnrse/configs.git` : setup your `~/.ssh/config` for github first  \n`git reset --hard origin/main` : reset current branch to origin/main (will discard all local changes)\n\nuse `~/.ssh/config`  \n`ssh -T github` : test github connection  \n\n#### [gpg and git](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work):\ncreate/show gpg keypair, print public key, add key to git:  \n```\ngpg --full-generate-key\ngpg --list-secret-keys --keyid-format=long\ngpg --armor --export \u003cid\u003e\ngit config --global user.signingkey \u003cid\u003e\n```\nto unlock pw-protected keys this must exist: `export GPG_TTY=$(tty)`  \n`git commit -S` : commit a signed commit  \n`git config --local commit.gpgsign true` : activate automatical signing of commits   \n`git log --show-signature -1` : show signiture of the last commit  \n`git tag -s v1.5 -m 'my signed 1.5 tag'` : sign a tag (did not try)  \n\n\u003cdetails\u003e \u003csummary\u003e\n\t\n### old setup method (git ~/.config)\n\u003c/summary\u003e\nI used to use sparse-checkout and exlude to only get specific files with git. Except for files in the `other` folder all files should be at the right place after cloning this repo. \n\nGo into one of the following paths:  \nunix: `~/.config/`  \nwin:  `C:\\Users\\\u003cUSERNAME\u003e\\AppData\\Local\\`\n```\ngit init\ngit remote add origin https://github.com/egnrse/configs\ngit config core.sparseCheckoutCone true\n```\nChoose the folders that u want:\n```\ngit sparse-checkout set alacritty bash dunst environment.d hypr nvim nwg-drawer scripts tofi waybar wlogout\n```\n(many of the configs rely on scripts and environment.d (or on each other) taking only a few might break things)  \n\nFinish the setup:\n```\ngit pull origin main\ngit branch --set-upstream-to=origin/main main\n```\n\n#### setup git exlude\n`./.git/info/exlude`  \nIs a file to exclude local files/folders from git.  \nCopy the content (that u need) of the file `/other/exclude` to `./.git/info/exclude`   \n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fegnrse%2Fconfigs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fegnrse%2Fconfigs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fegnrse%2Fconfigs/lists"}