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/themes
Tweaks 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