{ inputs, outputs, lib, config, pkgs, ... }: { nixpkgs = { config.allowUnfree = true; }; imports = [ # inputs.spicetify-nix.homeManagerModules.default #./wofi.nix ]; /* programs.spicetify = let spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; in { enable = true; enabledExtensions = with spicePkgs.extensions; [ adblock hidePodcasts shuffle # shuffle+ (special characters are sanitized out of extension names) ]; theme = spicePkgs.themes.catppuccin; colorScheme = "mocha"; }; */ #wayland.windowManager.hyprland.enable = true; home = { username = "me"; homeDirectory = "/home/me"; }; programs = { # these are both required for home-manager to work home-manager.enable = true; git.enable = true; # like `/bin/cat` but with syntax highlighting # TODO: change the pager (maybe use Github:sachaos/viddy instead) bat = { enable = true; config = { pager = "less -FR"; #theme = "Dracula"; }; }; /* spicetify = let spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; in { enable = true; enabledExtensions = with spicePkgs.extensions; [ adblock hidePodcasts #shuffle ]; theme = spicePkgs.themes.catppuccin; colorScheme = "mocha"; }; */ # The terminal I use # TODO: this is dependent on nvim being installed # TODO: make this into a module with a configurable editor option rio = { enable = true; # Rio Config Docs: https://raphamorim.io/rio/docs/config settings = { theme = "dracula"; hide-mouse-cursor-when-typing = true; use-fork = true; # fork (dont spawn) Rio padding-x = 10; padding-y = [ 15 10 ]; # top, left # lines = (accumulated scroll * multiplier / divider) scroll = { multiplier = 1.0; divider = 1.0; }; fonts = { size = 15; features = []; regular = { family = "FiraCode Nerd Font"; # "IosevkaTerm Nerd Font" style = "Normal"; weight = 400; }; bold = { family = "FiraCode Nerd Font"; style = "Normal"; weight = 800; }; italic = { family = "FiraCode Nerd Font"; style = "Italic"; weight = 400; }; bold-italic = { family = "FiraCode Nerd Font"; style = "Italic"; weight = 800; }; }; # Run when the `OpenConfigEditor` keybinding is triggered editor = { program = "nvim"; args = []; }; renderer = { performance = "High"; backend = "Automatic"; # Vulkan }; }; }; wofi = { enable = true; settings = { location = "center"; allow_markup = true; width = 250; }; }; }; # ----- SERVICES ----- services = { # Hyprland Wallpaper #hyprpaper = { # enable = true; # settings = { # preload = [ "~/nixdots/wallpapers/ghibli-esque-valley.png" ]; # wallpaper = [ # "DP-2,~/nixdots/wallpapers/ghibli-esque-valley.png" # "HDMI-A-1,~/nixdots/wallpapers/ghibli-esque-valley.png" # ]; # }; #}; hyprpaper.enable = true; # so stylix can see it # Change monitor positions # TODO: find a way to make this modular (ie put something different for my laptop) # my idea is to have a "monitors" module and use kanshi for wayland kanshi = { enable = true; systemdTarget = "hyprland-session.target"; # You can find your monitors in hyprland by using `hyprctl monitors all` settings = [ { # 1920x1080@144 gaming monitor output.criteria = "HDMI-A-1"; output.mode = "1920x1080@119.98Hz"; output.scale = 1.0; output.adaptiveSync = false; # Variable Refresh Rate (this can be changed for gaming) } { # 4k side monitor output.criteria = "DP-2"; output.mode = "3840x2160@60.00Hz"; output.scale = 2.0; } { # This is my default setup profile.name = "default"; profile.outputs = [ { criteria = "DP-2"; position = "0,0"; } { criteria = "HDMI-A-1"; position = "3840,0"; } ]; } ]; }; }; # Nicely reload system units when changing configs systemd.user.startServices = "sd-switch"; home.stateVersion = "24.05"; # don't change this }