nine7nine / n7n-AGS-Shell

A Wayland/Hyprland Desktop Shell based on Aylur's GTK Shell
Other
13 stars 0 forks source link
desktop gjs gnome gtk3 hyprland typescirpt wayland

n7n-AGS-Shell / Hyprland

My own AGS Shell based on Aylur's dotfiles. Aylur's AGS Desktop is great, but some of it is very specific to their own needs and style. Thus, I decided to hack away to make something suitable for me. I am running this Shell on a Microsoft Surface 7; multi-touch & Stylus support, so I need something a bit more tablet friendly...

That said; I have also stripped things down, and made the shell more 'generalized'. ie: while it has some handy functionality for tablets, it's great wihtout one too. This desktop-shell is intended to be functional, distraction-free, and modern -- while also having a bit of eye-candy.

Screenshots:

n7n-AGS-Shell_1 n7n-AGS-Shell_2 n7n-AGS-Shell_4

Features:

Dependencies:

Note: I maintain a fork of Hyprspace that has patchwork to integrate Hyprspace into my Shell. You should be able to use hyprpm to install/use it. Instructions of installation (via hyprpm or manual compilation) are listed in it's README.md.

Additionally, it's important to note that Hyprland sometimes introduces bugs or breaks plugins along the way. I try to mitigate this stuff (and submit PRs when applicable). Much of that is out of my control. In the case where upstream breaks something: I simply rollback to a working commmit and rebuild Hyprland, then wait for the dust to settle before rebuilding again.

Likewise, I do pickup changes from Aylur's dotfiles (where applicable). But I also won't pick up everything (feature-wise), as there is plenty of stuff I simply do not use in my Shell, including all of the nix stuff + a number of widgets/features.

Font:

Themes: (Gtk/Qt/Etc)

Icons:

Installation

git clone https://github.com/nine7nine/n7n-AGS-Shell.git
cp -r ~/n7n-AGS-Shell/ags $HOME/.config/ags

Restart AGS, or log into a Hyprland/AGS desktop session.

WvCtl Compilation

From within the ~/sources folder

gcc wvctl.c -o wvctl

After compilation; make it exectuable, and then move it somewhere in your PATH (eg: /usr/bin)

More General Tips

  1. You will need to audit my ~/hypr configs, as some of the paths and images are specific for my own machine. I also manually load hyprland plugins, due to hacking on them. Where as you may just use hyprpm to load them in a properly suppored way. So some modifications to configs are required.

  2. You don't have a touchdevice? Well, you may not want the Toolbox dock. To hide/not load Toolbox in n7n-AGS-Shell, open .config/ags/main.ts (on your machine) and comment out this line:

    windows: () => [
        ...forMonitors(Bar),
        ...forMonitors(NotificationPopups),
        ...forMonitors(ScreenCorners),
        ...forMonitors(OSD),
        ...forMonitors(FloatingDock),
        //...forMonitors(ToolBoxDock), <-- here
        Applauncher(),
        PowerMenu(),
        Verification(),
        SettingsDialog(),
    ],

Now Toolbox won't load up on start.

  1. Editing the Dock apps and other settings in the Shell. Most of this stuff can be found inside of .config/ags/options.ts - you will have to take a look yourself, but it's all pretty straight-forward stuff.

Final Notes:

While I have been putting this shell together for myself -- I may be willing to accept PRs, if I see value in the changes. Just keep in mind: I like simplicity; I've removed a number of things from Aylur's config (media stuff, screenrecord, redundancy from multiple widgets, etc) AND I've done away with the Shell managing Hyprland settings && relying explicitly on things like swww.

So if you have practical improvements, bugfixes or something interesting (functionally) -- it is possible that I may be interested in your contributions. While this shell is tablet-centric, it is also 'general purpose' and disabling tablet specific features is as simple is commenitng out a couple of LOC, not using Hyprgrass and removing a few settings from Hyprland.conf.

Lastly, if you want any pointers - feel free to ask.