Skip to content

A Wayland/Hyprland Desktop Shell based on Aylur's GTK Shell

License

Notifications You must be signed in to change notification settings

nine7nine/n7n-AGS-Shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • AppDock: Auto-hide. left-side position. Supports Chrome Apps. Note: WIP still needs indicators.
  • AppLauncher: Refactored into an AppMenu. Sorts apps. Searchable/launch.
  • DateMenu: Simplified Notificatios/DateMenu widget.
  • Hyprspace: Shell Inegration via hacks/patches.
  • Hyprlock: Shell Integration & Stylized.
  • QuickSettings: Refactored, Colorized and Stylized.
  • QS/Network Widget: Use iwgtk for settings. Fix layout bugs/issues.
  • Streamlined/simpified widgets: removing redundancy and complexity where appropriate.
  • Separation of Concerns: Clearly defined seperation of roles between Hyprland and AGS/The Shell.
  • SettingsDialog: Remove unused settings (Rmoved Widgets && Hyprland settings, etc.).
  • Taskbar: Stylized indicators. Allow soft-kill with secondary/right mouse or stylus click.
  • ToolBox: Dock Widget Utilizing Hyprland controls (window managment, rotation, etc.).
  • Workspaces: Dynamic. The Bar/widget allows navigation/selection (each workspace is a button).
  • WvKBD OSK Toggle: My WvCtl Utility is used to send signals to WvKBD.

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:

  • Ubuntu Nerd Font

Themes: (Gtk/Qt/Etc)

  • Nordic
  • Nordzy Cursors

Icons:

  • Papirus (dark)

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.