dotfiles/homes/me/default.nix

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
}