242 lines
5.8 KiB
Nix
Executable file
242 lines
5.8 KiB
Nix
Executable file
{
|
|
inputs,
|
|
outputs,
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: {
|
|
nixpkgs = {
|
|
config.allowUnfree = true;
|
|
};
|
|
|
|
imports = [
|
|
../modules/git.nix
|
|
../modules/bat.nix
|
|
../modules/fish.nix
|
|
../modules/editor/helix.nix
|
|
|
|
../modules/btop.nix
|
|
../modules/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
|
|
}
|