ft (wip): big initial config
This commit is contained in:
112
modules/desktop/default.nix
Normal file
112
modules/desktop/default.nix
Normal file
@@ -0,0 +1,112 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.displayManager.autoLogin = {
|
||||
enable = true;
|
||||
user = djai;
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
videoDrivers = [
|
||||
nvidia
|
||||
amdgpu
|
||||
intel
|
||||
];
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "euro";
|
||||
options = "caps:escape";
|
||||
};
|
||||
};
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
programs.hyprlock.enable = true;
|
||||
|
||||
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
|
||||
kanshi
|
||||
rofi
|
||||
waybar
|
||||
wl-clipboard
|
||||
wl-clipboard-x11
|
||||
];
|
||||
|
||||
# TODO: qt theming
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "gnome"; # have to use gnome as the "kde" setting crashes kde apps iff plasma isn't running
|
||||
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: start 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;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
}
|
||||
Reference in New Issue
Block a user