Files
dotfiles/nixos/desktop.nix

151 lines
3.1 KiB
Nix
Raw Normal View History

{ inputs, config, pkgs, lib, makeEnable, ... }:
2024-09-26 14:15:27 -06:00
makeEnable config "myModules.desktop" true {
services.greenclip.enable = true;
imports = [
./fonts.nix
./hyprland.nix
2026-02-03 20:30:39 -08:00
./keyd.nix
./wlsunset.nix
];
assertions = [
{
assertion = !(config.myModules.taffybar.enable && config.myModules.waybar.enable);
message = "myModules.taffybar and myModules.waybar cannot both be enabled.";
}
];
services.xserver = {
exportConfiguration = true;
enable = true;
displayManager = {
sessionCommands = ''
systemctl --user import-environment GDK_PIXBUF_MODULE_FILE DBUS_SESSION_BUS_ADDRESS PATH
'';
setupCommands = ''
autorandr -c
systemctl restart autorandr.service
'';
};
};
2023-06-28 22:27:09 -06:00
services.autorandr = {
enable = true;
};
# 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";
services.gnome.at-spi2-core.enable = true;
services.gnome.gnome-keyring.enable = true;
home-manager.sharedModules = [
2026-03-31 16:26:44 -07:00
{
imports = [ ./dunst.nix ];
xdg.desktopEntries."com.mitchellh.ghostty" = {
name = "Ghostty";
comment = "A terminal emulator";
icon = "com.mitchellh.ghostty";
terminal = false;
type = "Application";
categories = [ "System" "TerminalEmulator" ];
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";
};
};
};
}
];
2025-08-13 23:44:19 -06:00
2023-06-28 22:27:09 -06:00
environment.systemPackages = with pkgs; [
# Appearance
2024-08-11 17:52:53 -06:00
adwaita-icon-theme
2023-06-29 13:54:38 -06:00
hicolor-icon-theme
2025-08-27 12:27:59 -07:00
# libsForQt5.breeze-gtk
2023-11-24 22:08:02 -07:00
# materia-theme
2023-06-28 22:27:09 -06:00
numix-icon-theme-circle
papirus-icon-theme
# XOrg
autorandr
2026-02-03 20:30:39 -08:00
keyd
2023-06-28 22:27:09 -06:00
wmctrl
xclip
xdotool
xev
xwininfo
2023-06-28 22:27:09 -06:00
xsettingsd
# Desktop
2026-02-03 23:33:18 -08:00
alacritty
2026-02-04 00:28:44 -08:00
ghostty
2023-06-28 22:27:09 -06:00
blueman
2024-12-29 13:07:44 -07:00
# clipit
2024-03-12 00:08:32 -06:00
d-spy
2025-03-10 07:33:00 -06:00
kdePackages.dolphin
2023-06-28 22:27:09 -06:00
feh
2026-02-04 17:15:27 -08:00
gthumb
2023-06-28 22:27:09 -06:00
firefox
2024-08-11 17:52:53 -06:00
cheese
2025-03-10 07:34:27 -06:00
kdePackages.kleopatra
2023-06-28 22:27:09 -06:00
libnotify
2023-09-15 12:48:50 -06:00
libreoffice
2023-06-28 22:27:09 -06:00
lxappearance
lxqt.lxqt-powermanagement
networkmanagerapplet
2025-03-10 07:39:35 -06:00
kdePackages.okular
2025-11-18 12:53:05 -08:00
pinentry-gnome3
2024-11-20 14:07:24 -07:00
# mission-center
2023-06-28 22:27:09 -06:00
quassel
2023-07-28 17:31:05 -06:00
remmina
2023-06-28 22:27:09 -06:00
rofi
2025-07-15 15:32:04 -06:00
wofi
2023-06-28 22:27:09 -06:00
rofi-pass
rofi-systemd
simplescreenrecorder
skippy-xd
2026-02-04 17:15:27 -08:00
transmission_4-gtk
2023-06-28 22:27:09 -06:00
vlc
thunar
2023-06-28 23:40:34 -06:00
# Audio
2023-08-20 16:36:22 -06:00
picard
pavucontrol
2023-06-28 23:40:34 -06:00
playerctl
2023-06-29 13:37:48 -06:00
pulsemixer
2023-07-01 19:28:53 -06:00
espeak
2023-08-07 21:52:33 -06:00
#
brightnessctl
# Visualization
2023-08-07 21:52:33 -06:00
graphviz
mermaid-cli
] ++ (if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then with pkgs; [
2023-08-19 14:55:09 -06:00
google-chrome
pommed_light
slack
spicetify-cli
spotify
2025-11-18 12:53:05 -08:00
tor-browser
2023-08-19 14:55:09 -06:00
vscode
2024-06-12 21:09:50 -06:00
zulip
2023-08-19 14:55:09 -06:00
] else []);
}