nix-config/modules/scrolling-desktop/default.nix

178 lines
4.5 KiB
Nix

{ inputs, ... }:
{
flake.modules.nixos.scrolling-desktop =
{ pkgs, ... }:
{
programs.niri.enable = true;
security.polkit.enable = true;
services.gnome.gnome-keyring.enable = true;
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-gnome
];
};
services.gvfs.enable = true;
services.displayManager = {
enable = true;
ly = {
enable = true;
settings = {
asterisk = "0x2022";
bigclock = "en";
default_input = "password";
doom_fire_height = 1;
doom_top_color = "0x00c57faf";
doom_middle_color = "0x00d369af";
doom_bottom_color = "0x00572454";
session_log = ".local/share/ly-session.log";
vi_mode = true;
vi_default_mode = "insert";
bg = "0x000f0b15";
border_fg = "0x00807c9f";
box-title = "dnsc-machine";
};
};
};
environment.systemPackages = with pkgs; [
xwayland-satellite
bibata-cursors
gimp
darktable
reversal-icon-theme
nerd-fonts.victor-mono
adwaita-fonts
bodoni-moda
nautilus
nautilus-open-any-terminal
noto-fonts-color-emoji
adw-gtk3
kdePackages.qt6ct
usbutils
];
home-manager.sharedModules = [
inputs.self.modules.homeManager.scrolling-desktop
];
};
flake.modules.homeManager.scrolling-desktop =
{ pkgs, config, ... }:
{
services.polkit-gnome.enable = true;
services.mpris-proxy.enable = true;
xdg.desktopEntries = {
screenshot = {
type = "Application";
name = "Screenshot";
exec = "niri msg action screenshot";
icon = "screenie";
};
screenshot-screen = {
type = "Application";
name = "Screenshot Screen";
exec = "niri msg action screenshot-screen";
icon = "screenie";
};
color-pickers = {
type = "Application";
name = "Color Picker";
exec = "hyprpicker -a -f=hex -n -l -q";
icon = "colorpicker";
};
notes = {
type = "Application";
name = "Notes";
exec = "ghostty --working-directory=${config.home.homeDirectory}/notes -e nvim -c \":lua Snacks.picker('files')\"";
icon = "gnotes";
};
lock = {
type = "Application";
name = "Lock";
exec = "hyprlock";
icon = "lock-screen";
};
logout = {
type = "Application";
name = "Logout";
exec = "niri msg action quit";
icon = "administration";
};
shutdown = {
type = "Application";
name = "Shutdown";
exec = "shutdown now";
icon = "com.github.bcedu.shutdownscheduler";
};
};
fonts.fontconfig = {
enable = true;
antialiasing = true;
defaultFonts = {
monospace = [ "VictorMono Nerd Font" ];
sansSerif = [
"Adwaita Sans"
"Noto Color Emoji"
];
serif = [ "Bodoni Moda" ];
};
};
gtk = {
enable = true;
colorScheme = "dark";
theme.name = "adw-gtk3";
font = {
package = pkgs.adwaita-fonts;
name = "Adwaita Sans";
size = 11;
};
iconTheme = {
package = pkgs.reversal-icon-theme;
name = "Reversal-dark";
};
gtk4.iconTheme = {
package = pkgs.reversal-icon-theme;
name = "Reversal-dark";
};
cursorTheme = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 24;
};
};
imports = [
inputs.dms.homeModules.dank-material-shell
];
programs.dank-material-shell = {
enable = true;
systemd = {
enable = true;
restartIfChanged = true;
};
enableSystemMonitoring = true;
enableVPN = true;
enableClipboardPaste = true;
settings = {
theme = "dark";
};
session = {
isLightMode = false;
};
};
xdg.configFile."niri" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/nix-config/modules/scrolling-desktop/niri";
};
};
}