Files
dotfiles/nixos/desktop.nix
Ivan Malison cc05a1d790 Add Hyprland with hy3 plugin for XMonad-like tiling
Configure Hyprland to use the hy3 plugin for dynamic tiling similar to
XMonad. Uses official Hyprland and hy3 flakes pinned to v0.53.0 for
proper plugin compatibility (nixpkgs packaging had header issues).

Key changes:
- Add hyprland and hy3 flake inputs with version pinning
- Rewrite hyprland.conf with hy3 layout and XMonad-like keybindings
- Add helper scripts for window management (bring, replace, gather, etc.)
- WASD directional navigation using hy3:movefocus/movewindow
- Tab groups, horizontal/vertical splits via hy3:makegroup
- Scratchpads via Hyprland special workspaces

Also removes org-agenda-api flake integration (moved elsewhere).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 13:34:45 -05:00

116 lines
2.0 KiB
Nix

{ inputs, config, pkgs, makeEnable, ... }:
makeEnable config "myModules.desktop" true {
imports = [
./fonts.nix
./hyprland.nix
];
services.xserver = {
exportConfiguration = true;
enable = true;
xkb = {
layout = "us";
};
displayManager = {
sessionCommands = ''
systemctl --user import-environment GDK_PIXBUF_MODULE_FILE DBUS_SESSION_BUS_ADDRESS PATH
'';
setupCommands = ''
autorandr -c
systemctl restart autorandr.service
'';
};
};
services.autorandr = {
enable = true;
};
# This is for the benefit of VSCODE running natively in wayland
environment.sessionVariables.NIXOS_OZONE_WL = "1";
services.gnome.at-spi2-core.enable = true;
services.gnome.gnome-keyring.enable = true;
# Visual notification manager
environment.systemPackages = with pkgs; [
# Appearance
adwaita-icon-theme
hicolor-icon-theme
# libsForQt5.breeze-gtk
# materia-theme
numix-icon-theme-circle
papirus-icon-theme
# XOrg
autorandr
wmctrl
xclip
xdotool
xorg.xev
xorg.xkbcomp
xorg.xwininfo
xsettingsd
# Desktop
alacritty
blueman
# clipit
d-spy
kdePackages.dolphin
# inputs.ghostty.packages."${system}".default
feh
firefox
cheese
gpaste
kdePackages.kleopatra
libnotify
libreoffice
lxappearance
lxqt.lxqt-powermanagement
networkmanagerapplet
kdePackages.okular
pinentry-gnome3
# mission-center
quassel
remmina
rofi
wofi
rofi-pass
rofi-systemd
simplescreenrecorder
skippy-xd
synergy
# TODO: reenable
# transmission_3-gtk
vlc
xfce.thunar
# Audio
picard
pavucontrol
playerctl
pulsemixer
espeak
#
brightnessctl
# Visualization
graphviz
nodePackages.mermaid-cli
] ++ (if pkgs.system == "x86_64-linux" then with pkgs; [
google-chrome
pommed_light
slack
spicetify-cli
spotify
tor-browser
vscode
zulip
] else []);
}