135 lines
3.1 KiB
Nix
135 lines
3.1 KiB
Nix
{ pkgs, inputs, ... }:
|
|
|
|
{
|
|
services.displayManager = {
|
|
ly = {
|
|
enable = true;
|
|
x11Suport = false;
|
|
};
|
|
|
|
autoLogin = {
|
|
enable = true;
|
|
user = "djai";
|
|
};
|
|
|
|
defaultSession = "hyprland-uwsm"; # TODO: might be wrong
|
|
};
|
|
|
|
# note that we set the videodrivers on a per-host basis, so not here.
|
|
services.xserver = {
|
|
enable = true;
|
|
xkb = {
|
|
layout = "us";
|
|
variant = "euro";
|
|
options = "caps:escape";
|
|
};
|
|
};
|
|
|
|
programs.hyprland = {
|
|
enable = true;
|
|
withUWSM = true;
|
|
};
|
|
programs.hyprlock.enable = true;
|
|
programs.uwsm = {
|
|
enable = true;
|
|
waylandCompositors = {
|
|
hyprland = {
|
|
prettyName = "Hyprland";
|
|
comment = "Hyprland compositor managed by UWSM";
|
|
binPath = "/run/current-system/sw/bin/Hyprland";
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
hardware.graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
};
|
|
|
|
hardware.bluetooth.enable = true;
|
|
services.blueman.enable = true;
|
|
|
|
fonts.packages = with pkgs; [
|
|
nerd-fonts.caskaydia-cove
|
|
nerd-fonts.fira-code
|
|
nerd-fonts.iosevka
|
|
nerd-fonts.shure-tech-mono
|
|
nerd-fonts.symbols-only
|
|
];
|
|
|
|
# services.gvfs.enable = true;
|
|
services.udisks2.enable = true;
|
|
services.printing.enable = true;
|
|
|
|
users.users.djai.packages = with pkgs; [
|
|
hyprpicker
|
|
hyprsunset
|
|
wf-recorder
|
|
wmctrl
|
|
hyprprop
|
|
hyprlandPlugins.hypr-darkwindow
|
|
kanshi
|
|
rofi
|
|
waybar
|
|
wl-clipboard
|
|
wl-clipboard-x11
|
|
swaybg
|
|
];
|
|
|
|
qt = {
|
|
enable = true;
|
|
platformTheme = "qt5ct"; # might have to go back to gnome if this makes kdenlive crash
|
|
style = "adwaita-dark";
|
|
};
|
|
|
|
# i have no clue what this does.
|
|
# GLib aborts any program that loads a GSettings schema it can't find, and Qt's GTK file dialog needs gtk3's. Nothing else puts these on the path.
|
|
environment.sessionVariables.GSETTINGS_SCHEMA_DIR = builtins.concatStringsSep ":" [
|
|
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas"
|
|
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}/glib-2.0/schemas"
|
|
];
|
|
|
|
# TODO: other mimetypes?
|
|
xdg.mime.defaultApplications = {
|
|
"inode/directory" = [ "kitty" ];
|
|
"text/html" = [ "librewolf.desktop" ];
|
|
"x-scheme-handler/http" = [ "liberwolf.desktop" ];
|
|
"x-scheme-handler/https" = [ "librewolf.desktop" ];
|
|
};
|
|
|
|
# TODO: check we like these defaults
|
|
xdg.portal = {
|
|
enable = true;
|
|
config = {
|
|
common.default = [ "gtk" ];
|
|
hyprland = {
|
|
default = [
|
|
"gtk"
|
|
"hyprland"
|
|
];
|
|
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
|
|
"org.freedesktop.impl.portal.OpenURI" = [ "gtk" ];
|
|
};
|
|
};
|
|
# programs.hyprland adds the Hyprland portal.
|
|
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
};
|
|
|
|
# TODO: switch to using home manager
|
|
# home-manager.users.djai = {
|
|
# imports = [ ./hyprland.nix ]; # loogat husseins dots for inspo
|
|
#
|
|
# home.packages = with pkgs; [ ];
|
|
#
|
|
# # TODO: cursor + icon theming
|
|
# gtk = {
|
|
# enable = true;
|
|
# iconTheme = {
|
|
# name = "Papirus-Dark";
|
|
# package = pkgs.papirus-icon-theme;
|
|
# };
|
|
# };
|
|
# };
|
|
}
|