{ inputs, outputs, lib, config, pkgs, ... }: { nixpkgs = { config.allowUnfree = true; }; imports = [ ../modules/git.nix ../modules/bat.nix ../modules/fish.nix ../modules/editor/helix.nix ../modules/editor/vscodium.nix ../modules/btop.nix ../modules/term/ghostty.nix ../modules/term/rio.nix ../modules/firefox.nix ../modules/nixcord.nix #../modules/hypr/hypridle.nix ../modules/hypr/hyprlock.nix ../modules/kanshi.nix ../modules/ags ]; /* 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"; }; */ home = { username = "me"; homeDirectory = "/home/me"; pointerCursor = { gtk.enable = true; # x11.enable = true # dont enable since im on hyprland package = pkgs.bibata-cursors; name = "Bibata-Modern-Ice"; size = 16; }; }; gtk = { enable = true; font.name = "Victor Mono SemiBold 12"; theme = { name = "Dracula"; package = pkgs.dracula-theme; }; iconTheme = { name = "kora"; package = pkgs.kora-icon-theme; }; # TODO: use a variable to mirror this cursor size # with the `home.pointerCurser.size` cursorTheme = { # dont set the theme (use system default instead) # only set size to match the system package = pkgs.bibata-cursors; name = "Bibata-Modern-Ice"; size = 16; }; }; # TODO: this lowkey doesnt work... (maybe the name "Dracula" is wrong?) qt = { enable = true; platformTheme.name = "gtk2"; style.name = "gtk2"; }; programs = { # these are both required for home-manager to work home-manager.enable = true; # DEBUG: testing if my xdg-desktop-portal-hyprland is working or not obs-studio = { enable = false; plugins = with pkgs.obs-studio-plugins; [ wlrobs obs-backgroundremoval obs-pipewire-audio-capture ]; }; # set ssh profiles # (all we need is hyrule, everything else is through wishlist) # NOTE: (IMPORTANT) this DOES NOT start the ssh-agent # for that you need to use `services.ssh-agent.enable` ssh = { enable = true; forwardAgent = true; addKeysToAgent = "yes"; # always add keys to ssh-agent matchBlocks = { hyrule = { hostname = "imbored.dev"; user = "ae"; port = 22; identityFile = "~/.ssh/id_hyrule"; setEnv = { TERM = "linux"; }; }; subspace = { hostname = "imbored.dev"; user = "subspace"; port = 22; identityFile = "~/.ssh/id_subspace"; }; dead = { hostname = "deadlyserver.com"; user = "emile"; port = 29843; identityFile = "~/.ssh/id_deadlyserver"; setEnv = { TERM = "xterm-256color"; }; }; youcue = { hostname = "moss.labs.eait.uq.edu.au"; user = "s4740056"; port = 22; identityFile = "~/.ssh/id_youcue"; setEnv = { TERM = "xterm-256color"; }; }; }; }; /* hyprpanel = { enable = true; # automatically restart when config changes systemd.enable = true; # TODO: change to false # add `exec-once hyprpanel` to hyprland config hyprland.enable = true; # fix the overwrite issue with hyprpanel on NixOS overwrite.enable = true; # import a theme from './themes/*.json' # theme = ""; # override the final config #override = {}; # config the bar layouts for monitors layout = { "bar.layouts" = { "0" = { left = ["dashboard" "workspaces"]; middle = ["media"]; right = ["volume" "systray" "notifications"]; }; }; }; # settings = { # bar.launcher.autoDetectIcon = true; # bar.workspaces.show_icons = true; # # menus.clock = { # time = { # military = true; # hideSeconds = true; # }; # weather.unit = "metric"; # }; # # menus.dashboard.directories.enabled = false; # menus.dashboard.stats.enable_gpu = true; # # theme.bar.transparent = true; # # theme.font = { # name = "CaskaydiaCove NF"; # size = "16px"; # }; # }; }; */ # I want to use fish as my login shell but it always # goes terrible cause it isn't POSIX compliant, so # instead Bash is my login and it will just exec fish #bash = { # interactiveShellInit = '' # if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] # then # shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" # exec ${pkgs.fish}/bin/fish $LOGIN_OPTION # fi # ''; #}; /* 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"; }; */ }; # enable OpenSSH private key agent services.ssh-agent.enable = true; # the ssh-agent won't set this for itself... systemd.user.sessionVariables.SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent"; # Nicely reload system units when changing configs systemd.user.startServices = "sd-switch"; home.stateVersion = "24.05"; # don't change this }