Add home manager setup.
This commit is contained in:
@@ -12,6 +12,14 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
|
||||
};
|
||||
|
||||
home-manager-stable-nixos = {
|
||||
#url = "github:nix-community/home-manager?ref=7aae0ee71a17b19708b93b3ed448a1a0952bf111";
|
||||
url = "github:nix-community/home-manager?ref=873c5b2dc5c9387bf67e59a12abc4de12a4b8697";
|
||||
#url = "github:nix-community/home-manager?ref=f5098b074051d1ae0e919adf434a60fc3f23347b";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
|
||||
nix-flatpak-stable-nixos = {
|
||||
url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||
};
|
||||
|
||||
542
nodes/hosts/common/home/jay/home.nix
Normal file
542
nodes/hosts/common/home/jay/home.nix
Normal file
@@ -0,0 +1,542 @@
|
||||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
home.username = "jay";
|
||||
home.homeDirectory = "/home/jay";
|
||||
|
||||
imports = [ inputs.hyprpanel.homeManagerModules.hyprpanel ];
|
||||
|
||||
|
||||
# This value determines the Home Manager release that your configuration is
|
||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||
# introduces backwards incompatible changes.
|
||||
#
|
||||
# You should not change this value, even if you update Home Manager. If you do
|
||||
# want to update the value, then make sure to first check the Home Manager
|
||||
# release notes.
|
||||
home.stateVersion = "24.11"; # Please read the comment before changing.
|
||||
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
home.packages = [
|
||||
pkgs.legcord
|
||||
pkgs.libgtop
|
||||
pkgs.mpvpaper
|
||||
# pkgs.hyprlandPlugins.hyprtrails
|
||||
];
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
# plain files is through 'home.file'.
|
||||
home.file = {
|
||||
# ".config/elinks/elinks.conf".source = ../../dotfiles/elinks/elinks.conf;
|
||||
# ".config/jellyfin-tui/config.yaml".source = ../../dotfiles/jellyfin-tui/config.yaml;
|
||||
# ".config/newsboat/config".source = ../../dotfiles/newsboat/config;
|
||||
# "quickemu/kubuntu-24.04.conf".source = ../../dotfiles/quickemu/kubuntu-24.04.conf;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nano";
|
||||
};
|
||||
|
||||
programs.bash.enable = true;
|
||||
|
||||
programs.alacritty = lib.mkForce {
|
||||
enable = true;
|
||||
settings = {
|
||||
window.opacity = 0.00;
|
||||
# window.blur = true;
|
||||
font.normal = {
|
||||
family = "BigBlueTermPlus Nerd Font";
|
||||
style = "Regular";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
};
|
||||
|
||||
programs.lazygit.enable = true;
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = "jay@zerojay.com";
|
||||
userName = "jay";
|
||||
extraConfig = {
|
||||
credential.helper = "${
|
||||
pkgs.git.override { withLibsecret = true; }
|
||||
}/bin/git-credential-libsecret";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
package = pkgs.yazi;
|
||||
plugins = {
|
||||
"bypass" = pkgs.yaziPlugins.bypass;
|
||||
"chmod" = pkgs.yaziPlugins.chmod;
|
||||
"full-border" = pkgs.yaziPlugins.full-border;
|
||||
"lazygit" = pkgs.yaziPlugins.lazygit;
|
||||
"mediainfo" = pkgs.yaziPlugins.mediainfo;
|
||||
"no-status" = pkgs.yaziPlugins.no-status;
|
||||
"ouch" = pkgs.yaziPlugins.ouch;
|
||||
"restore" = pkgs.yaziPlugins.restore;
|
||||
"smart-enter" = pkgs.yaziPlugins.smart-enter;
|
||||
"toggle-pane" = pkgs.yaziPlugins.toggle-pane;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
programs.oh-my-posh = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
useTheme = "blueish";
|
||||
};
|
||||
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
# settings = {
|
||||
# email = "jay@zerojay.com";
|
||||
# base_url = "https://bw.zerojay.com";
|
||||
# };
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# programs.starship.presets = [ "nerd-font-symbols" ];
|
||||
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
overlay.enable = true;
|
||||
hyprland.enable = true;
|
||||
settings = {
|
||||
layout = {
|
||||
"bar.layouts" = {
|
||||
"0" = {
|
||||
left = [ "dashboard" "separator" "microphone" "volume" "bluetooth" "separator" "network" "separator" "workspaces" "windowtitle" ];
|
||||
middle = [ "media" "cava" ];
|
||||
right = [ "netstat" "cpu" "cputemp" "ram" "storage" "separator" "systray" "notifications" "separator" "weather" "clock" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
bar = {
|
||||
customModules = {
|
||||
cava = {
|
||||
showIcon = false;
|
||||
framerate = 165;
|
||||
};
|
||||
cpuTemp.sensor = "/sys/devices/pci0000\:00/0000\:00\:18.3/hwmon/hwmon2/temp3_input";
|
||||
netstat.rateUnit = "MiB";
|
||||
weather.unit = "metric";
|
||||
updates = {
|
||||
label = true;
|
||||
autoHide = false;
|
||||
padZero = true;
|
||||
pollingInterval = 14400000;
|
||||
updateCommand = "cd ~/nixos-config/ && nix flake update && nix build .#nixosConfigurations.nixos.config.system.build.toplevel && nvd diff /run/current-system ./result | grep -e '\[U' | wc -l";
|
||||
icon = {
|
||||
pending = "";
|
||||
updated = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
launcher.autoDetectIcon = true;
|
||||
media = {
|
||||
truncation = true;
|
||||
truncation_size = 70;
|
||||
};
|
||||
workspaces = {
|
||||
show_icons = true;
|
||||
showApplicationIcons = true;
|
||||
ignored = "-\\\\d+";
|
||||
};
|
||||
network = {
|
||||
showWifiInfo = true;
|
||||
truncation = false;
|
||||
label = true;
|
||||
};
|
||||
windowtitle = {
|
||||
class_name = false;
|
||||
custom_title = false;
|
||||
truncation = true;
|
||||
truncation_size = 70;
|
||||
};
|
||||
};
|
||||
|
||||
#theme.name = "nord";
|
||||
# Wipeout HD Theme
|
||||
#theme.name = "catppuccin_latte";
|
||||
# Wipeout HD Reverse Theme
|
||||
theme.name = "monochrome";
|
||||
|
||||
menus.clock = {
|
||||
time = {
|
||||
military = true;
|
||||
hideSeconds = true;
|
||||
};
|
||||
weather = {
|
||||
location = "Montreal";
|
||||
key = "0bec3053c1c64737a5b42727251005";
|
||||
unit = "metric";
|
||||
};
|
||||
};
|
||||
|
||||
menus.dashboard = {
|
||||
directories = {
|
||||
enabled = true;
|
||||
left = {
|
||||
directory1.command = "bash -c \"xdg-open $HOME/downloads/\"";
|
||||
directory2.command = "bash -c \"xdg-open $HOME/videos/\"";
|
||||
directory3.command = "bash -c \"xdg-open $HOME/games/\"";
|
||||
directory3.label = " Games";
|
||||
};
|
||||
right = {
|
||||
directory1.command = "bash -c \"xdg-open $HOME/documents/\"";
|
||||
directory2.command = "bash -c \"xdg-open $HOME/pictures/\"";
|
||||
directory3.command = "bash -c \"xdg-open $HOME/\"";
|
||||
};
|
||||
};
|
||||
shortcuts = {
|
||||
left = {
|
||||
shortcut1 = {
|
||||
command = "zen-twilight";
|
||||
icon = "";
|
||||
tooltip = "Zen Twilight";
|
||||
};
|
||||
shortcut2 = {
|
||||
command = "steam --disable-gpu-compositing";
|
||||
icon = "";
|
||||
tooltip = "Steam";
|
||||
};
|
||||
shortcut3 = {
|
||||
command = "vesktop";
|
||||
tooltip = "Vesktop";
|
||||
};
|
||||
};
|
||||
|
||||
right = {
|
||||
shortcut3.command = "hyprshot -zm region --clipboard-only";
|
||||
};
|
||||
};
|
||||
stats.enable_gpu = true;
|
||||
recording.path = "$HOME/Videos/recording";
|
||||
};
|
||||
|
||||
menus.media = {
|
||||
displayTime = true;
|
||||
displayTimeTooltip = true;
|
||||
};
|
||||
|
||||
theme = {
|
||||
bar = {
|
||||
transparent = true;
|
||||
floating = false;
|
||||
};
|
||||
|
||||
font = {
|
||||
size = "12px";
|
||||
name = "BigBlueTermPlus Nerd Font";
|
||||
};
|
||||
};
|
||||
|
||||
wallpaper.enable = false;
|
||||
|
||||
#bar.workspaces.workspaceIconMap = {
|
||||
# "1" = "";
|
||||
# "3" = "";
|
||||
# "4" = "";
|
||||
# };
|
||||
};
|
||||
};
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/onedark.yaml";
|
||||
#image = ./qat02.png;
|
||||
# Wipeout HD Theme
|
||||
#image = ./wipeout.png;
|
||||
# Wipeout HD Reverse Theme
|
||||
#image = ./wipeoutreverse.png;
|
||||
targets = {
|
||||
# hyprpaper.enable = lib.mkForce false;
|
||||
mako.enable = false;
|
||||
qt.enable = false;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
services = {
|
||||
fluidsynth = {
|
||||
enable = true;
|
||||
soundService = "pipewire-pulse";
|
||||
};
|
||||
|
||||
hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock";
|
||||
#before_sleep_cmd = "loginctl lock-session";
|
||||
#after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
};
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
# Allow home-manager to configure hyprland
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
systemd.enable = true;
|
||||
|
||||
plugins = [
|
||||
#pkgs.hyprlandPlugins.hyprtrails
|
||||
#pkgs.hyprlandPlugins.hyprbars
|
||||
#inputs.hyprland-plugins.packages."${pkgs.system}".hyprtrails
|
||||
#inputs.hypr-darkwindow.packages.${pkgs.system}.Hypr-DarkWindow
|
||||
];
|
||||
|
||||
settings = {
|
||||
"monitor" = "DP-2, 3440x1440@165, 0x0, 1";
|
||||
"$terminal" = "alacritty";
|
||||
"$filemanager" = "dolphin";
|
||||
"$menu" = "rofi -show drun -show-icons";
|
||||
|
||||
"$mainMod" = "SUPER";
|
||||
|
||||
bind = [
|
||||
"$mainMod, Q, exec, $terminal"
|
||||
"$mainMod, C, killactive,"
|
||||
"$mainMod, M, exit,"
|
||||
"$mainMod, E, exec, $fileManager"
|
||||
"$mainMod, F, togglefloating,"
|
||||
"$mainMod, R, exec, $menu"
|
||||
"$mainMod, P, pseudo"
|
||||
"$mainMod, J, togglesplit"
|
||||
"$mainMod, l, exec, hyprlock"
|
||||
|
||||
# "$mainMod, V, exec, cliphist list | rofi -dmenu | cliphost decode | wl-copy"
|
||||
"$mainMod, V, exec, $terminal --class clipse -e 'clipse'"
|
||||
|
||||
"$mainMod, left, movefocus, l"
|
||||
"$mainMod, right, movefocus, r"
|
||||
"$mainMod, up, movefocus, u"
|
||||
"$mainMod, down, movefocus, d"
|
||||
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
"$mainMod, 5, workspace, 5"
|
||||
"$mainMod, 6, workspace, 6"
|
||||
"$mainMod, 7, workspace, 7"
|
||||
"$mainMod, 8, workspace, 8"
|
||||
"$mainMod, 9, workspace, 9"
|
||||
"$mainMod, 0, workspace, 10"
|
||||
|
||||
"$mainMod SHIFT, Q, exec, hdrop --floating --gap 60 --width 50 $terminal --class alacritty"
|
||||
|
||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
||||
|
||||
"$mainMod SHIFT, right, resizeactive, 10 0"
|
||||
"$mainMod SHIFT, left, resizeactive, -10 0"
|
||||
"$mainMod SHIFT, up, resizeactive, 0 -10"
|
||||
"$mainMod SHIFT, down, resizeactive, 0 10"
|
||||
|
||||
"$mainMod, S, exec, hyprshot -zm region --clipboard-only"
|
||||
"$mainMod SHIFT, S, exec, hyprshot -zm region"
|
||||
|
||||
"$mainMod, F9, exec, playerctl previous"
|
||||
"$mainMod, F10, exec, playerctl play-pause"
|
||||
"$mainMod, F11, exec, playerctl next"
|
||||
|
||||
#"$mainMod, S, togglespecialworkspace, magic"
|
||||
#"$mainMod SHIFT, S, movetoworkspace, special:magic"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
bindel = [
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
|
||||
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
" , XF86AudioNext, exec, playerctl next"
|
||||
" , XF86AudioPause, exec, playerctl play-pause"
|
||||
" , XF86AudioPlay, exec, playerctl play-pause"
|
||||
" , XF86AudioPrev, exec, playerctl previous"
|
||||
];
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE,24"
|
||||
"HYPRCURSOR_SIZE,24"
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
||||
"NVD_BACKEND,direct"
|
||||
];
|
||||
|
||||
general = {
|
||||
layout = "dwindle";
|
||||
gaps_in = 5;
|
||||
gaps_out = 20;
|
||||
border_size = 2;
|
||||
#"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
#"col.inactive_border" = "rgba(595959aa)";
|
||||
|
||||
|
||||
allow_tearing = true;
|
||||
resize_on_border = true;
|
||||
};
|
||||
|
||||
misc = {
|
||||
enable_anr_dialog = false;
|
||||
vrr = 0;
|
||||
# anr_missed_pings = 3;
|
||||
disable_hyprland_logo = true;
|
||||
};
|
||||
|
||||
debug = {
|
||||
full_cm_proto = true;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
rounding_power = 2;
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
blur = {
|
||||
enabled = false;
|
||||
vibrancy = 0.1696;
|
||||
|
||||
passes = 1;
|
||||
size = 3;
|
||||
};
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
#color = "rgba(1a1a1aee)";
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"easeOutQuint,0.23,1,0.32,1"
|
||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||
"linear,0,0,1,1"
|
||||
"almostLinear,0.5,0.5,0.75,1.0"
|
||||
"quick,0.15,0,0.1,1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"global, 1, 10, default"
|
||||
"border, 1, 5.39, easeOutQuint"
|
||||
"windows, 1, 4.79, easeOutQuint"
|
||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||
"fadeIn, 1, 1.73, almostLinear"
|
||||
"fadeOut, 1, 1.46, almostLinear"
|
||||
"fade, 1, 3.03, quick"
|
||||
"layers, 1, 3.81, easeOutQuint"
|
||||
"layersIn, 1, 4, easeOutQuint, fade"
|
||||
"layersOut, 1, 1.5, linear, fade"
|
||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||
"workspaces, 1, 1.94, almostLinear, fade"
|
||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||
];
|
||||
};
|
||||
|
||||
#"plugin:borders-plus-plus" = {
|
||||
# add_borders = 1; # 0 - 9
|
||||
|
||||
# you can add up to 9 borders
|
||||
#"col.border_1" = "rgb(ffffff)";
|
||||
#"col.border_2" = "rgb(2222ff)";
|
||||
|
||||
# -1 means "default" as in the one defined in general:border_size
|
||||
# border_size_1 = 10;
|
||||
# border_size_2 = -1;
|
||||
|
||||
# makes outer edges match rounding of the parent. Turn on / off to better understand. Default = on.
|
||||
# natural_rounding = "yes";
|
||||
#};
|
||||
|
||||
#"plugin:hyprbars" = {
|
||||
# enable = true;
|
||||
#};
|
||||
|
||||
# Execute on startup.
|
||||
exec-once = [
|
||||
# "systemctl --user start hyprpolkitagent"
|
||||
"steam --disable-gpu-compositing" # nvidia pls let me have nice things
|
||||
#"vesktop"
|
||||
"legcord"
|
||||
# "[workspace 9 silent] ELECTRON_OZONE_PLATFORM_HINT=x11 1password" # fix for promts not showing up anymore
|
||||
"zen-twilight"
|
||||
# "${pkgs.xorg.xhost}/bin/xhost +"
|
||||
#"${pkgs.waybar}/bin/waybar &"
|
||||
#"${pkgs.dunst}/bin/dunst &"
|
||||
"clipse -listen"
|
||||
"streamcontroller"
|
||||
#"session-desktop"
|
||||
"mpvpaper --gpu-api=vulkan -vfp -o 'no-audio no-keepaspect loop vf=lavfi=negate' DP-2 /home/jay/nixos-config/hosts/nixos/wipeout.mkv"
|
||||
#"wl-clipboard-history -t"
|
||||
#"wl-paste --watch cliphist store"
|
||||
#"rm $HOME/.cache/cliphist/db"
|
||||
#"hyprpanel &"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"workspace 1 silent, class:^(zen-twilight)$"
|
||||
"workspace 2 silent, class:^(steam)$"
|
||||
"workspace 3 silent, class:^(legcord)$"
|
||||
"workspace 4 silent, class:^(com.core447.StreamController)$"
|
||||
"float,class:(clipse)$"
|
||||
"size 622 652,class:(clipse)$"
|
||||
];
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user