2026-04-12 14:13:56 -07:00
|
|
|
{
|
|
|
|
|
inputs,
|
|
|
|
|
config,
|
|
|
|
|
pkgs,
|
|
|
|
|
lib,
|
|
|
|
|
makeEnable,
|
|
|
|
|
...
|
|
|
|
|
}:
|
2024-09-26 14:15:27 -06:00
|
|
|
makeEnable config "myModules.desktop" true {
|
2026-01-30 00:09:48 -08:00
|
|
|
services.greenclip.enable = true;
|
2023-06-28 21:45:08 -06:00
|
|
|
imports = [
|
|
|
|
|
./fonts.nix
|
2026-01-20 13:34:45 -05:00
|
|
|
./hyprland.nix
|
2026-02-03 20:30:39 -08:00
|
|
|
./keyd.nix
|
2026-02-10 18:38:03 -08:00
|
|
|
./wlsunset.nix
|
2023-06-28 21:45:08 -06:00
|
|
|
];
|
|
|
|
|
|
2026-02-05 12:00:46 -08:00
|
|
|
assertions = [
|
|
|
|
|
{
|
2026-02-10 20:17:46 -08:00
|
|
|
assertion = !(config.myModules.taffybar.enable && config.myModules.waybar.enable);
|
|
|
|
|
message = "myModules.taffybar and myModules.waybar cannot both be enabled.";
|
2026-02-05 12:00:46 -08:00
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
|
2023-06-28 21:45:08 -06:00
|
|
|
services.xserver = {
|
|
|
|
|
exportConfiguration = true;
|
|
|
|
|
enable = true;
|
|
|
|
|
displayManager = {
|
|
|
|
|
sessionCommands = ''
|
|
|
|
|
systemctl --user import-environment GDK_PIXBUF_MODULE_FILE DBUS_SESSION_BUS_ADDRESS PATH
|
|
|
|
|
'';
|
2023-08-05 22:57:54 -06:00
|
|
|
setupCommands = ''
|
|
|
|
|
autorandr -c
|
|
|
|
|
systemctl restart autorandr.service
|
|
|
|
|
'';
|
2023-06-28 21:45:08 -06:00
|
|
|
};
|
|
|
|
|
};
|
2023-06-28 22:27:09 -06:00
|
|
|
|
2023-08-05 21:02:01 -06:00
|
|
|
services.autorandr = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
|
|
|
|
|
2023-07-28 02:17:03 -06:00
|
|
|
# This is for the benefit of VSCODE running natively in wayland
|
2023-06-28 22:28:41 -06:00
|
|
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
|
|
|
|
2026-04-12 14:58:33 -07:00
|
|
|
system.activationScripts.playwrightChromeCompat.text = lib.optionalString (pkgs.stdenv.hostPlatform.system == "x86_64-linux") ''
|
|
|
|
|
# Playwright's Chrome channel lookup expects the FHS path below.
|
|
|
|
|
mkdir -p /opt/google/chrome
|
|
|
|
|
ln -sfn ${pkgs.google-chrome}/bin/google-chrome-stable /opt/google/chrome/chrome
|
|
|
|
|
'';
|
|
|
|
|
|
2023-08-20 04:25:58 -06:00
|
|
|
services.gnome.at-spi2-core.enable = true;
|
|
|
|
|
|
|
|
|
|
services.gnome.gnome-keyring.enable = true;
|
|
|
|
|
|
2026-02-09 01:13:10 -08:00
|
|
|
home-manager.sharedModules = [
|
2026-03-31 16:26:44 -07:00
|
|
|
{
|
2026-04-12 14:13:56 -07:00
|
|
|
imports = [./dunst.nix];
|
2026-03-31 16:26:44 -07:00
|
|
|
|
|
|
|
|
xdg.desktopEntries."com.mitchellh.ghostty" = {
|
|
|
|
|
name = "Ghostty";
|
|
|
|
|
comment = "A terminal emulator";
|
|
|
|
|
icon = "com.mitchellh.ghostty";
|
|
|
|
|
terminal = false;
|
|
|
|
|
type = "Application";
|
2026-04-12 14:13:56 -07:00
|
|
|
categories = ["System" "TerminalEmulator"];
|
2026-03-31 16:26:44 -07:00
|
|
|
startupNotify = true;
|
|
|
|
|
exec = "${pkgs.ghostty}/bin/ghostty --gtk-single-instance=false";
|
|
|
|
|
settings = {
|
|
|
|
|
StartupWMClass = "com.mitchellh.ghostty";
|
|
|
|
|
X-GNOME-UsesNotifications = "true";
|
|
|
|
|
X-TerminalArgExec = "-e";
|
|
|
|
|
X-TerminalArgTitle = "--title=";
|
|
|
|
|
X-TerminalArgAppId = "--class=";
|
|
|
|
|
X-TerminalArgDir = "--working-directory=";
|
|
|
|
|
X-TerminalArgHold = "--wait-after-command";
|
|
|
|
|
};
|
|
|
|
|
actions = {
|
|
|
|
|
new-window = {
|
|
|
|
|
name = "New Window";
|
|
|
|
|
exec = "${pkgs.ghostty}/bin/ghostty --gtk-single-instance=false";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|
2026-02-09 01:13:10 -08:00
|
|
|
];
|
2025-08-13 23:44:19 -06:00
|
|
|
|
2026-04-12 14:13:56 -07:00
|
|
|
environment.systemPackages = with pkgs;
|
|
|
|
|
[
|
|
|
|
|
# Appearance
|
|
|
|
|
adwaita-icon-theme
|
|
|
|
|
hicolor-icon-theme
|
|
|
|
|
# libsForQt5.breeze-gtk
|
|
|
|
|
# materia-theme
|
|
|
|
|
numix-icon-theme-circle
|
|
|
|
|
papirus-icon-theme
|
2023-06-28 22:27:09 -06:00
|
|
|
|
2026-04-12 14:13:56 -07:00
|
|
|
# XOrg
|
|
|
|
|
autorandr
|
|
|
|
|
keyd
|
|
|
|
|
wmctrl
|
|
|
|
|
xclip
|
|
|
|
|
xdotool
|
|
|
|
|
xev
|
|
|
|
|
xwininfo
|
|
|
|
|
xsettingsd
|
2023-06-28 22:27:09 -06:00
|
|
|
|
2026-04-12 14:13:56 -07:00
|
|
|
# Desktop
|
|
|
|
|
alacritty
|
|
|
|
|
ghostty
|
|
|
|
|
blueman
|
|
|
|
|
# clipit
|
|
|
|
|
d-spy
|
|
|
|
|
kdePackages.dolphin
|
2023-07-28 01:49:44 +00:00
|
|
|
|
2026-04-12 14:13:56 -07:00
|
|
|
feh
|
|
|
|
|
file-roller
|
|
|
|
|
gthumb
|
|
|
|
|
firefox
|
|
|
|
|
cheese
|
|
|
|
|
kdePackages.kleopatra
|
|
|
|
|
libnotify
|
|
|
|
|
libreoffice
|
|
|
|
|
loupe
|
|
|
|
|
lxappearance
|
|
|
|
|
lxqt.lxqt-powermanagement
|
|
|
|
|
networkmanagerapplet
|
|
|
|
|
kdePackages.okular
|
|
|
|
|
pinentry-gnome3
|
|
|
|
|
# mission-center
|
|
|
|
|
quassel
|
|
|
|
|
remmina
|
|
|
|
|
rofi
|
|
|
|
|
wofi
|
|
|
|
|
rofi-pass
|
|
|
|
|
rofi-systemd
|
|
|
|
|
simplescreenrecorder
|
|
|
|
|
skippy-xd
|
|
|
|
|
transmission_4-gtk
|
|
|
|
|
vlc
|
|
|
|
|
thunar
|
2023-06-28 23:40:34 -06:00
|
|
|
|
2026-04-12 14:13:56 -07:00
|
|
|
# Audio
|
|
|
|
|
picard
|
|
|
|
|
pavucontrol
|
|
|
|
|
playerctl
|
|
|
|
|
pulsemixer
|
|
|
|
|
espeak
|
2023-08-07 21:52:33 -06:00
|
|
|
|
2026-04-12 14:13:56 -07:00
|
|
|
#
|
|
|
|
|
brightnessctl
|
2025-08-13 21:24:59 -06:00
|
|
|
|
2026-04-12 14:13:56 -07:00
|
|
|
# Visualization
|
|
|
|
|
graphviz
|
|
|
|
|
mermaid-cli
|
|
|
|
|
]
|
|
|
|
|
++ (
|
|
|
|
|
if pkgs.stdenv.hostPlatform.system == "x86_64-linux"
|
|
|
|
|
then
|
|
|
|
|
with pkgs; [
|
|
|
|
|
google-chrome
|
|
|
|
|
pommed_light
|
|
|
|
|
slack
|
|
|
|
|
spicetify-cli
|
|
|
|
|
spotify
|
|
|
|
|
tor-browser
|
|
|
|
|
vscode
|
|
|
|
|
zulip
|
|
|
|
|
]
|
|
|
|
|
else []
|
|
|
|
|
);
|
2023-06-28 21:45:08 -06:00
|
|
|
}
|