<div id="title" align="center">
    <img src="https://static.janishutz.com/logo.jpg" width="300">
    <h1>janishutz Hyprland</h1>
</div>

Collection of dotfiles for my personal Hyprland setup, running on Arch Linux. 
Includes a setup and install script (that one is not complete yet though).
For my neovim config, see [here](https://git.janishutz.com/janishutz/nvim)

![screenshot of desktop with 2 screens](./assets/screenshot.png)

I am currently working on redoing my keybinds for Hyprland, in what I call `hyprvim`:
They are going to use submaps and will be significantly different, yet still familiar.
This will enable me to have many more keybinds with reasonable starter bindings.
I will also update Astal to have a mode indicator if `hyprvim` is enabled.

## Features
- Astal4 based Status Bar and Quick Actions menu
    - System info
    - Hyprland info
    - Date & Time
    - Bluetooth picker
    - some networking settings (more coming later)
    - Audio and brightness control
    - battery monitoring
    - Logout, Reboot, Shutdown, etc
- Rofi config for App launcher
- Wlogout config
- Theming script that generates a GTK theme and theming for bar, Hyprland, etc
- Fish config (with some handy aliases, based on one from ohh-my-fish)
- Fastfetch config
- kitty config with cursor trail
- Linter configs (currently only eslint, which is not complete yet)
- mpv config
- zathura configs
- yazi configs with links to various directories I use commonly plus a few plugins and themes that are applied by the script
- Astal3 based Notifications (due to be migrated to Astal4)

## Installing
Clone your repo to any folder and adapt what you need. Some folders are still hard-coded, which I will be changing later on, so you will likely run into issues.

You may then run the `setup` script. That won't install all dependencies though. The `install` script is what serves that purpose, but that is not complete yet


## Setting up to develop
Clone this repo locally. For `config/astal` and `config/ags`, you will want to run `ags types -d .` in every directory where there is a `app.ts` file as well as `mkdir node_modules && cd node_modules && ln -sf /usr/share/astal/gjs/ ./astal` to prepare for development.

The `config/ags` directory contains gtk3 config for astal, whereas in `config/astal`, gtk4 configs can be found. All modules but for the notifications are written in Gtk 4. 
