forked from colonelpanic/dotfiles
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>
116 lines
2.0 KiB
Nix
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 []);
|
|
}
|