Guide - schmynth/hydotfiles GitHub Wiki

My fork of HyDE

This is my fork of the HyDE dotfiles for hyprland. This file tries to explain how HyDE works as well as how to customize it.

Installation

The installation script install.sh runs most of the scripts in install_scripts/, so if you want to check what is happening durin installation, that should be the place to start looking.
In the install_scripts/lists/ directory you find lists of files, packages and themes that will be installed.
Make sure to check out packages.lst, which contains a list of packages that will be installed from core and extra and, if not available there, from the AUR.
You should review and most certainly tweak this list to meet your needs.

[!CAUTION] Do not use tabs to seperate package names from commented descriptions. Otherwise the packges won't be found.

Log guideline

output location

The logs are saved to .cache/hyde/logs.

printing logs

print_log -sec "SectionName" type (-info, -err, -warn)

white when just printing info blue when doing something

Config Guide

Config Files

Hyprland

Boilerplate file: ~/.local/share/hyde/hyprland.conf
This file is the default general config file.

Override file: ~/.config/hypr/hyde.conf
This file is used to override environment variables, startup applications and services.

User files:
~/.config/hypr/keybindings.conf
~/.config/hypr/userprefs.conf
~/.config/hypr/windowrules.conf
~/.config/hypr/monitors.conf
self explanatory

More info in ~/.config/hypr/hyprland.conf

Themes

The themes are sourced from project HyDE github repo. They are cloned to ~/.config/hyde/themesTweaks to themes can be applied here, f.e. background color of waybar (bar-bg in line 2 inwaybar.theme)

When the theme is changed, ${scrDir}/wallbash.sh is executed. That invokes the scripts specified in the .dcol template files in ~/.local/share/hyde/wallbash/theme. For example: waybar.dcol tells wallbash to run wbarconfgen.sh.

Wallpapers

Wallpapers are stored in .config/hyde/themes/[theme name]/wallpapers on a per theme basis. Drop your wallpapers where you think fit.

Icons

In order to change the icon theme in the theme repo, put it in Source/arcs/Icon_{IconThemeName}.tar.gz. The prefix Icon_ is important! After that, reference that archive in Config/.config/hyde/themes/{ThemeName}/hypr.theme after $ICON_THEME = without prefix and extension.

sddm

The general theme is the sddm-astronaut-theme, which will be installed by the install script (install.sh -> install_pst.sh). This is different from the original Project HyDE.

To change your users avatar image in sddm, place your image in /var/lib/AccountsService/icons/ and rename it so the filename matches your username (no extension).

waybar

To change waybar background color, edit ~/.config/waybar/modules/style.css (Line 105 custom-rr_end -> background). Do not edit ~/-config/waybar/style.css, as it is autogenerated at theme change. You can also change opacity there directly, however that also applies to the font...

To change the border width, edit ~/.local/lib/hyde/wbarstylegen.sh. Border width is defined in export waybar_border_width=x

To change font size you can hardcode fontsize to export in wbarstylegen.sh

nwg-dock (schmynth)

This is not part of the original hyde repo. Steps to implement it:

  • add nwg-dock-hyprland to packages to install (extra repo)
  • add $scrDir/dockstylegen.sh to launch (start) section in ~/.local/share/hyde/hyprland.conf
  • add exec-once = $start.DOCK to launch (exec-once) section in ~/.local/share/hyde/hyprland.conf
  • cd ~/.local/share/hyde/wallbash/theme && cp waybar.dcol nwg-dock.dcol and delete the script after the pipe.
  • Copy the theme.css from ~/.config/waybar to ~/.config/nwg-dock-hyprland
  • change the path to config file in first line of nwg-dock.dcol to match that file.
  • make directory named theme and copy the style.css (!) into it. Change dynamic values to variables so that you can envsubst them in a script.
  • write a script that generates the style.css in the root config folder of nwg-dock by envsubsting the style.css in theme sub folder.
  • add that script to the .dcol template file for nwg-dock

TODO:

  • implement config file that nwg-dock and waybar etc. take settings from (border-width, border-radius etc)
  • implement automatic repositioning based on waybar position (top/bottom)

Cursor

Change the cursor in ~/.local/share/hyde/hyprland.conf under CURSOR You should combine a XCURSOR and HYPRCURSOR theme by taking the xcursor theme and copying the hyprcursor/ folder from the HYPRCURSOR theme into it, so that the theme folder has the following structure:

    themename/
        cursors/ # xcursor
        hyprcursors/ # hyprcursor
        cursor.theme
        index.theme

Hyprlock

Make your own hyprlock layout and put it in

~/.config/hypr/hyprlock/

Rofi menus

HyDE uses rofi for a variety of purposes including:

  • wallpaper selection
  • theme selection
  • power menu (schmynth)
  • game launcher

The styles for these rofi launcher(s) can be edited in ~/.local/share/rofi/themes.

dunst

The notification demon used in hyde is dunst. It can be configured in ~/.config/dunst/dunst.conf. The icons used are in ~/.local/share/icons/Wallbash-Icon/media/

zsh

Put your zsh aliases and keybinds in ~/.zshrc

Questions

  • where are preconfigured zsh keybinds stored? -> they are part of oh-my-zsh
  • where does oh-my-zsh come from? -> it is installed by Scripts/restore_shl.sh
  • what is hyde-shell? $HOME/.local/bin/hyde-shell
  • how do i install different cursor theme? -> set in restore_fnt.lst
  • where do the themes and wallpapers come from? -> they come from HyDE/themes repo as in Scripts/themepatcher.lst
  • how is stuff from Source/arcs (.tar.gz) installed? -> by the restore_... scripts
  • how do the dotfiles get installed? By Scripts/restore_cfg.sh
    • The config files are listed in restore_cfg.psv (restore_cfg.lst is deprecated and can be deleted seems like)
  • Where are the logs stored? -> in ~/.cache/hyde

Config files:

.local/share/hyde/
    config.toml # general hyde config
    hyprland.conf # env variables

Hyde file structure

. β”œβ”€β”€ dotfiles β”œβ”€β”€ hydotfiles.wiki β”‚   β”œβ”€β”€ COMMIT_MESSAGE_GUIDELINES.md β”‚   β”œβ”€β”€ Guide.md β”‚   β”œβ”€β”€ Home.md β”‚   β”œβ”€β”€ Hyprdots-to-HyDE.md β”‚   β”œβ”€β”€ KEYBINDINGS.md β”‚   β”œβ”€β”€ TODO.md β”‚   └── wiki-testpage.md β”œβ”€β”€ install_scripts β”‚   β”œβ”€β”€ extra β”‚   β”‚   β”œβ”€β”€ install_fpk.sh β”‚   β”‚   β”œβ”€β”€ restore_app.sh β”‚   β”‚   └── restore_lnk.sh β”‚   β”œβ”€β”€ global_fn.sh # general functions needed by most scripts (logging, variables etc.) β”‚   β”œβ”€β”€ install_aur.sh # install aur helper β”‚   β”œβ”€β”€ install_pkg.sh # install packages β”‚   β”œβ”€β”€ install_plugins.sh # install hyprland plugins (hyprpm) β”‚   β”œβ”€β”€ install_pre.sh # pre install jobs β”‚   β”œβ”€β”€ install_pst.sh # post install jobs (sddm, zsh, dolphin, flatpak installation) β”‚   β”œβ”€β”€ install.sh # main install script β”‚   β”œβ”€β”€ lists β”‚   β”‚   β”œβ”€β”€ flatpak.lst # list of flatpaks to install β”‚   β”‚   β”œβ”€β”€ packages.lst # list of packages to install β”‚   β”‚   β”œβ”€β”€ restore_cfg.psv # list of dotfiles to install β”‚   β”‚   β”œβ”€β”€ restore_fnt.lst # list of fonts to install β”‚   β”‚   β”œβ”€β”€ restore_zsh.lst # zsh config to install β”‚   β”‚   β”œβ”€β”€ system_ctl.lst # system packages to install β”‚   β”‚   └── themepatcher.lst # theme list to install β”‚   β”œβ”€β”€ pretty_print.sh β”‚   β”œβ”€β”€ realtime-audio.sh # script to apply realtime optimizations as per arch wiki, not in original HyDE β”‚   β”œβ”€β”€ restore_cfg.sh # script to install dotfiles (hyde) β”‚   β”œβ”€β”€ restore_fnt.sh # install fonts β”‚   β”œβ”€β”€ restore_shl.sh # install zsh config β”‚   β”œβ”€β”€ restore_thm.sh # install themes β”‚   β”œβ”€β”€ themepatcher.sh # patch themes β”‚   └── uninstall.sh # uninstall β”œβ”€β”€ LICENSE β”œβ”€β”€ README.md β”œβ”€β”€ Source β”‚   β”œβ”€β”€ arcs β”‚   β”‚   β”œβ”€β”€ Cursor_BibataIce.tar.gz β”‚   β”‚   β”œβ”€β”€ Cursor_RosePine.tar.gz β”‚   β”‚   β”œβ”€β”€ Font_CascadiaCove.tar.gz β”‚   β”‚   β”œβ”€β”€ Font_JetBrainsMono.tar.gz β”‚   β”‚   β”œβ”€β”€ Font_MapleNerd.tar.gz β”‚   β”‚   β”œβ”€β”€ Font_MaterialDesign.tar.gz β”‚   β”‚   β”œβ”€β”€ Font_MononokiNerd.tar.gz β”‚   β”‚   β”œβ”€β”€ Font_NotoSansCJK.tar.gz β”‚   β”‚   β”œβ”€β”€ Gtk_Wallbash.tar.gz β”‚   β”‚   β”œβ”€β”€ Icon_Wallbash.tar.gz β”‚   β”‚   β”œβ”€β”€ Sddm_Candy.tar.gz β”‚   β”‚   β”œβ”€β”€ Sddm_Corners.tar.gz β”‚   β”‚   β”œβ”€β”€ Spotify_Sleek.tar.gz β”‚   β”‚   └── Steam_Metro.tar.gz β”‚   β”œβ”€β”€ assets β”‚   β”‚   β”œβ”€β”€ archlinux.png β”‚   β”‚   β”œβ”€β”€ arch.png β”‚   β”‚   β”œβ”€β”€ cachyos.png β”‚   β”‚   β”œβ”€β”€ endeavouros.png β”‚   β”‚   β”œβ”€β”€ game_launch_1.png β”‚   β”‚   β”œβ”€β”€ game_launch_2.png β”‚   β”‚   β”œβ”€β”€ game_launch_3.png β”‚   β”‚   β”œβ”€β”€ game_launch_4.png β”‚   β”‚   β”œβ”€β”€ game_launch_5.png β”‚   β”‚   β”œβ”€β”€ garuda.png β”‚   β”‚   β”œβ”€β”€ hyde_banner.png β”‚   β”‚   β”œβ”€β”€ hyde.png -> ./hyde.png β”‚   β”‚   β”œβ”€β”€ hyprdots_arch.png β”‚   β”‚   β”œβ”€β”€ hyprdots_banner.png β”‚   β”‚   β”œβ”€β”€ hyprdots_logo.png β”‚   β”‚   β”œβ”€β”€ nixos.png β”‚   β”‚   β”œβ”€β”€ notif_action_sel.png β”‚   β”‚   β”œβ”€β”€ rofi_style_10.png β”‚   β”‚   β”œβ”€β”€ rofi_style_11.png β”‚   β”‚   β”œβ”€β”€ rofi_style_12.png β”‚   β”‚   β”œβ”€β”€ rofi_style_1.png β”‚   β”‚   β”œβ”€β”€ rofi_style_2.png β”‚   β”‚   β”œβ”€β”€ rofi_style_3.png β”‚   β”‚   β”œβ”€β”€ rofi_style_4.png β”‚   β”‚   β”œβ”€β”€ rofi_style_5.png β”‚   β”‚   β”œβ”€β”€ rofi_style_6.png β”‚   β”‚   β”œβ”€β”€ rofi_style_7.png β”‚   β”‚   β”œβ”€β”€ rofi_style_8.png β”‚   β”‚   β”œβ”€β”€ rofi_style_9.png β”‚   β”‚   β”œβ”€β”€ rofi_style_sel.png β”‚   β”‚   β”œβ”€β”€ showcase_1.png β”‚   β”‚   β”œβ”€β”€ showcase_2.png β”‚   β”‚   β”œβ”€β”€ showcase_3.png β”‚   β”‚   β”œβ”€β”€ showcase_4.png β”‚   β”‚   β”œβ”€β”€ theme_cedge_1.png β”‚   β”‚   β”œβ”€β”€ theme_cedge_2.png β”‚   β”‚   β”œβ”€β”€ theme_decay_1.png β”‚   β”‚   β”œβ”€β”€ theme_decay_2.png β”‚   β”‚   β”œβ”€β”€ theme_frosted_1.png β”‚   β”‚   β”œβ”€β”€ theme_frosted_2.png β”‚   β”‚   β”œβ”€β”€ theme_graph_1.png β”‚   β”‚   β”œβ”€β”€ theme_graph_2.png β”‚   β”‚   β”œβ”€β”€ theme_gruvbox_1.png β”‚   β”‚   β”œβ”€β”€ theme_gruvbox_2.png β”‚   β”‚   β”œβ”€β”€ theme_latte_1.png β”‚   β”‚   β”œβ”€β”€ theme_latte_2.png β”‚   β”‚   β”œβ”€β”€ theme_maura_1.png β”‚   β”‚   β”œβ”€β”€ theme_maura_2.png β”‚   β”‚   β”œβ”€β”€ theme_mocha_1.png β”‚   β”‚   β”œβ”€β”€ theme_mocha_2.png β”‚   β”‚   β”œβ”€β”€ theme_rosine_1.png β”‚   β”‚   β”œβ”€β”€ theme_rosine_2.png β”‚   β”‚   β”œβ”€β”€ theme_select_1.png β”‚   β”‚   β”œβ”€β”€ theme_select_2.png β”‚   β”‚   β”œβ”€β”€ theme_tokyo_1.png β”‚   β”‚   β”œβ”€β”€ theme_tokyo_2.png β”‚   β”‚   β”œβ”€β”€ walls_select.png β”‚   β”‚   β”œβ”€β”€ wb_mode_sel.png β”‚   β”‚   β”œβ”€β”€ wlog_style_1.png β”‚   β”‚   β”œβ”€β”€ wlog_style_2.png β”‚   β”‚   └── yt_playlist.png β”‚   β”œβ”€β”€ docs β”‚   β”‚   β”œβ”€β”€ COMMIT_MESSAGE_GUIDELINES.de.md β”‚   β”‚   β”œβ”€β”€ CONTRIBUTING.de.md β”‚   β”‚   β”œβ”€β”€ KEYBINDINGS.de.md β”‚   β”‚   β”œβ”€β”€ KEYBINDINGS.es.md β”‚   β”‚   β”œβ”€β”€ KEYBINDINGS.zh.md β”‚   β”‚   β”œβ”€β”€ README.de.md β”‚   β”‚   β”œβ”€β”€ README.es.md β”‚   β”‚   └── README.zh.md β”‚   └── misc β”‚   β”œβ”€β”€ nightTab_backdrop.jpg β”‚   β”œβ”€β”€ nightTab_config.json β”‚   └── tittu.face.icon └── structure

11 directories, 121 files

* Scripts/
*     extra/
*         custom_flat.lst # OK, contains flatpak packages to install, updated
*         restore_app.sh # OK, updated, removed firefox extension installation
*         install_fpk.sh # OK
*         restore_lnk.sh
*     global_fn.sh # OK, utility functions
*     install_aur.sh # OK, installs selected AUR helper
*     install_pkg.sh # OK, installs pacman packages
*     install_pre.sh # OK
*     install_pst.sh # installiert sddm, runs restore_shl.sh, sddm vlt ungewollt ??????????
*     install.sh # OK
*     pkg_core.lst # OK, packages to install from arch core repo
*     pkg_extra.lst # OK, packages to install from extra repo or AUR
*     restore_fnt.lst # OK, list of tarballs and targets to extract to
*     restore_shl.sh # OK
*     systemctl.lst # OK
*     themepatcher.lst # contains links to themes
*     
* Configs
*     .local/
*         state/
*             dolphinstaterc # OK
*         bin/
*             hyde-shell      # script, checkt, ob HyDE installiert ist. Ruft interactive_shell.
*                             # hyde_reload, zoom und wallbash auf, je nach Argument.
*         lib/
*             hyde/ [$scrPath]
*                 amdgpu.py   # OK
*                 animations.sh # OK
*                 batterynotify.sh # OK
*                 brightnesscontrol.sh # OK
*                 cliphist.sh	# OK      
*                 cpuinfo.sh # OK  
*                 dontkillsteam.sh # OK
*                 emoji-picker.sh # OK
*                 fastfetch.sh # OK
*                 font.sh	# Resolves, downloads and installs fonts
*                 gamelauncher.sh # OK
*                 globalcontrol.sh # OK, contains env variables for scripts
*                 glyph-picker.sh # OK
*                 gnome-terminal # OK	
*                 gpuinfo.sh # OK
*                 hyde-launch.sh # OK, IG, launches mime type apps	
*                 hyprlock.sh # OK	
*                 hyprsunset.sh # OK	
*                 hypr.unbind.sh # OK
*                 keyboardswitch.sh # OK
*                 keybinds.hint.py # OK	
*                 keybinds_hint.sh # OK	
*                 lockscreen.sh # OK, runs hyprlock
*                 logoutlaunch.sh # runs wlogout, should be replaced by rofi power 
*                 mediaplayer.py	   
*                 notifications.py   
*                 parse.json.py	   
*                 polkitkdeauth.sh # where is /usr/lib/polkit-gnome/ ?
*                 quickapps.sh	   
*                 resetxdgportal.sh # OK
*                 rofilaunch.sh # OK, launches rofi in different modes, added rofi-power-menu
*                 rofiselect.sh # seems to select style
*                 sensorsinfo.py
*                 swwwallbash.sh    
*                 sysmonlaunch.sh   
*                 swwwallcache.sh   
*                 swwwallkon.sh # 
*                 swwwallpaper.sh # OK, only runs wallpaper.sh
*                 swwwallselect.sh  
*                 systemupdate.sh # OK
*                 testrunner.sh     
*                 themeselect.sh    
*                 themeswitch.sh
*                 volumecontrol.sh # OK
*                 wallbash.hypr.sh
*                 wallbash.print.colors.sh
*                 wallbash.qt.sh
*                 wallbash.sh
*                 wallbashtoggle.sh
*                 wallpaper.sh # OK, i guess
*                 wbarconfgen.sh # OK, generates waybar config
*                 wbarstylegen.sh
*                 weather.py
*         share/
*             dolphin/ # OK
*             hyde/
*                 config.toml # OK, config file for HyDE
*                 dunst.conf # OK, config file for dunst
*                 hyde.conf # OK, override hyde config file
*                 emoji.db # OK
*                 glyph.db # OK
*                 hyprland.conf # boilerplate hyprland config file
*                 hyprlock.conf
*                 keybindings.conf # OK, renamed to keybindings.conf.bak
*                 rofi/
*                     assets/ # OK, only pngs
*                     themes/ # OK, only themes
*             icons/
*             kio/ 
*                 servicemenus/
*                     hydewallpaper.desktop # runs swwwwallkon.sh, sets wallpaper from context menu
*             kxmlgui5/ # OK
*         state/
*     .config/
*         hypr/
*             animations/     # OK, Override config files for hyprland.conf
*             themes/ # OK
*                 colors.conf # OK, wallbash color palette
*                 theme.conf # OK, theme info, auto updated
*                 wallbash.conf # OK, auto-generated by HyDe
*             animations.conf # OK, references .config/hypr/animations/theme.conf
*             hyde.conf # OK, reference file for configuration, no code, configure in .local/share/hyde 
*             hypridle.conf # calls lockscreen.sh, sources .config/hypridle/*
*             hyprlock/ # OK
*                 theme.conf # OK, takes wallbash variables 
*             hyprlock.conf # sources ~/.local/share/hyde/hyprlock.conf and 
*                           # ~/.config/hypr/hyprlock/theme.conf
*             keybindings.conf # OK, edited to my liking
*             monitors.conf # OK, monitor config file, default empty
*             userprefs.conf # OK, hyprland preferences for user, default empty, added KB layouts
*             windowrules.conf # OK, only windowrules
*         Code/ # OK
*         dunst/ # OK    
*         fastfetch/ # OK
*         gtk-3.0/ # OK
*         hyde/
*             wallbash/
*                 always/ # OK, only dcol templates
*                 scripts/
*                     code.sh # runs wallbash with vsix wallbash addon in VSCode
*                     discord.sh # OK, evaluates .css files
*                     spotify.sh # OK, I GUESS, updates spicetify theme
*                 theme/
*                     code.dcol # OK, only VSCode theme dcol template
*             config.toml # OK, empty config override file
*         kitty/ # OK
*         Kvantum/ # OK
*         lsd/ # OK, only colors, icons, config
*         MangoHud/ # OK, mangohud config file
*         menus/ # OK, menu for dolphin
*         nwg-look/ # OK
*         qt5ct/ # OK
*         qt6ct/ # OK
*         rofi/ # OK
*         swaylock/ # OK, aber vlt unnΓΆtig
*         VSCodium/ # OK, aber vlt unnΓΆtig
*         waybar/
*             modules/ # OK, wenn alle scripts ok sind!!!!!
*             config.ctl # OK, templates for layouts, edit this for changes
*                         # important: spaces before and after () needed!
*             config.jsonc # OK, generated, do not edit
*             style.css # OK
*             theme.css # OK
*         wlogout/ # OK
*         xsettingsd/ # OK
*         baloofilerc # OK
*         dolphinrc # OK
*         electron-flags # OK
*         kdeglobals # OK
*         libinput-gestures # OK
*         spotify-flags # OK
*         vscodium-flags
*     .gtkrc-2.0 # OK
*     .hyde.zshrc # OK, zsh config, f.e. pokego
*     .p10k.zsh
*     .zshenv
*     .zshrc # OK, use for zsh override config