dotfiles/homes/me/default.nix

251 lines
6 KiB
Nix
Raw Normal View History

2024-10-30 19:45:26 +10:00
{
inputs,
outputs,
lib,
config,
pkgs,
...
2024-11-07 17:37:15 +10:00
}: {
2024-10-30 19:45:26 +10:00
nixpkgs = {
2024-10-30 23:25:57 +10:00
config.allowUnfree = true;
2024-10-30 19:45:26 +10:00
};
2024-10-30 23:25:57 +10:00
imports = [
../modules/git.nix
../modules/bat.nix
../modules/fish.nix
../modules/editor/helix.nix
../modules/editor/vscodium.nix
2025-02-21 18:48:51 +10:00
../modules/btop.nix
../modules/term/ghostty.nix
../modules/term/rio.nix
../modules/firefox.nix
../modules/nixcord.nix
2025-02-19 12:14:25 +10:00
#../modules/hypr/hypridle.nix
../modules/hypr/hyprlock.nix
../modules/kanshi.nix
2025-02-11 15:47:56 +10:00
../modules/ags
2024-10-30 23:25:57 +10:00
];
/*
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";
};
*/
2024-10-30 19:45:26 +10:00
home = {
username = "me";
2024-11-07 17:37:15 +10:00
homeDirectory = "/home/me";
shellAliases = {
rip = "rg"; # ripgrep
brip = "batgrep"; # bat + ripgrep
man = "batman"; # bat + man
};
2024-11-07 17:37:15 +10:00
pointerCursor = {
gtk.enable = true;
# x11.enable = true # dont enable since im on hyprland
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 16;
};
2024-10-30 19:45:26 +10:00
};
2024-11-08 04:08:30 +10:00
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";
};
2024-10-30 19:45:26 +10:00
programs = {
# these are both required for home-manager to work
home-manager.enable = true;
2024-11-07 17:37:15 +10:00
# DEBUG: testing if my xdg-desktop-portal-hyprland is working or not
obs-studio = {
2025-02-26 08:42:18 +10:00
enable = false;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
};
2025-02-21 18:48:51 +10:00
# set ssh profiles
# (all we need is hyrule, everything else is through wishlist)
# NOTE: (IMPORTANT) this DOES NOT start the ssh-agent
2025-02-19 12:14:25 +10:00
# for that you need to use `services.ssh-agent.enable`
2025-02-21 18:48:51 +10:00
ssh = {
enable = true;
forwardAgent = true;
addKeysToAgent = "yes"; # always add keys to ssh-agent
matchBlocks = {
hyrule = {
hostname = "imbored.dev";
user = "ae";
port = 22;
2025-02-19 12:14:25 +10:00
identityFile = "~/.ssh/id_hyrule";
setEnv = {
TERM = "linux";
};
2025-02-19 12:14:25 +10:00
};
subspace = {
hostname = "imbored.dev";
user = "subspace";
port = 22;
identityFile = "~/.ssh/id_subspace";
2025-02-21 18:48:51 +10:00
};
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";
};
};
2025-02-21 18:48:51 +10:00
};
};
/*
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";
# };
# };
};
*/
2024-11-04 11:59:14 +10:00
# I want to use fish as my login shell but it always
2024-11-07 17:37:15 +10:00
# 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} ]]
2024-11-04 11:59:14 +10:00
# then
# shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
# exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
2024-11-07 17:37:15 +10:00
# fi
# '';
#};
2024-11-04 11:59:14 +10:00
2024-11-07 17:37:15 +10:00
/*
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";
};
*/
};
2024-10-30 19:45:26 +10:00
2025-02-21 18:48:51 +10:00
# enable OpenSSH private key agent
2025-02-21 19:59:44 +10:00
2025-02-21 18:48:51 +10:00
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";
2024-11-04 11:59:14 +10:00
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
home.stateVersion = "24.05"; # don't change this
2024-10-30 19:45:26 +10:00
}