zaneyos/hosts/familypc/home.nix

531 lines
16 KiB
Nix
Raw Normal View History

2024-05-14 08:44:34 +02:00
{
pkgs,
inputs,
username,
host,
config,
2024-05-14 08:44:34 +02:00
...
}:
let
inherit (import ./variables.nix)
gitUsername
gitEmail
;
in
{
2024-01-13 06:53:25 +01:00
# Home Manager Settings
2024-01-12 09:00:46 +01:00
home.username = "${username}";
2024-01-13 06:53:25 +01:00
home.homeDirectory = "/home/${username}";
2024-01-09 23:50:24 +01:00
home.stateVersion = "23.11";
# Import Program Configurations
imports = [
inputs.hyprland.homeManagerModules.default
2024-05-14 09:42:14 +02:00
../../config/hyprland.nix
2024-05-15 01:39:39 +02:00
../../config/swaync.nix
../../config/waybar.nix
2024-05-15 01:31:08 +02:00
../../config/wlogout.nix
];
# Place Files Inside Home Directory
home.file."Pictures/Wallpapers" = {
source = ../../config/wallpapers;
recursive = true;
};
2024-05-17 11:31:50 +02:00
home.file.".config/wlogout/icons" = {
source = ../../config/wlogout;
recursive = true;
};
home.file.".local/share/fonts" = {
source = ../../config/fonts;
recursive = true;
};
home.file.".config/starship.toml".source = ../../config/starship.toml;
home.file.".config/ascii-neofetch".source = ../../config/ascii-neofetch;
home.file.".base16-themes".source = ../../config/base16-themes;
home.file.".face.icon".source = ../../config/face.jpg;
2024-05-19 17:42:31 +02:00
home.file.".config/face.jpg".source = ../../config/face.jpg;
home.file.".config/neofetch/config.conf".text = ''
print_info() {
prin "$(color 6) ZaneyOS $ZANEYOS_VERSION"
info underline
info "$(color 7) VER" kernel
info "$(color 2) UP " uptime
info "$(color 4) PKG" packages
info "$(color 6) DE " de
info "$(color 5) TER" term
info "$(color 3) CPU" cpu
info "$(color 7) GPU" gpu
info "$(color 5) MEM" memory
prin " "
prin "$(color 1) $(color 2) $(color 3) $(color 4) $(color 5) $(color 6) $(color 7) $(color 8)"
}
distro_shorthand="on"
memory_unit="gib"
cpu_temp="C"
separator=" $(color 4)>"
stdout="off"
'';
home.file.".config/swappy/config".text = ''
[Default]
save_dir=/home/${username}/Pictures/Screenshots
save_filename_format=swappy-%Y%m%d-%H%M%S.png
show_panel=false
line_size=5
text_size=20
text_font=Ubuntu
paint_mode=brush
early_exit=true
fill_shape=false
'';
2024-01-13 06:53:25 +01:00
# Install & Configure Git
2024-01-09 23:50:24 +01:00
programs.git = {
enable = true;
2024-01-13 06:53:25 +01:00
userName = "${gitUsername}";
userEmail = "${gitEmail}";
2024-01-09 23:50:24 +01:00
};
2024-01-13 06:53:25 +01:00
# Create XDG Dirs
2024-01-09 23:50:24 +01:00
xdg = {
userDirs = {
2024-05-14 08:44:34 +02:00
enable = true;
createDirectories = true;
2024-01-09 23:50:24 +01:00
};
};
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
2024-05-14 08:44:34 +02:00
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
# Styling Options
stylix.targets.waybar.enable = false;
stylix.targets.rofi.enable = false;
# Scripts
home.packages = [
(import ../../scripts/emopicker9000.nix { inherit pkgs; })
(import ../../scripts/task-waybar.nix { inherit pkgs; })
(import ../../scripts/squirtle.nix { inherit pkgs; })
(import ../../scripts/themechange.nix {
inherit pkgs;
inherit host;
inherit username;
})
(import ../../scripts/theme-selector.nix { inherit pkgs; })
(import ../../scripts/nvidia-offload.nix { inherit pkgs; })
(import ../../scripts/wallsetter.nix {
inherit pkgs;
inherit username;
})
(import ../../scripts/web-search.nix { inherit pkgs; })
(import ../../scripts/rofi-launcher.nix { inherit pkgs; })
(import ../../scripts/screenshootin.nix { inherit pkgs; })
(import ../../scripts/list-hypr-bindings.nix {
inherit pkgs;
inherit host;
})
];
services = {
hypridle = {
settings = {
general = {
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 900;
on-timeout = "hyprlock";
}
{
timeout = 1200;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
};
programs = {
gh.enable = true;
neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
extraPackages = with pkgs; [
lua-language-server
gopls
xclip
wl-clipboard
luajitPackages.lua-lsp
nil
rust-analyzer
nodePackages.bash-language-server
yaml-language-server
pyright
marksman
];
plugins = with pkgs.vimPlugins; [
alpha-nvim
auto-session
bufferline-nvim
dressing-nvim
indent-blankline-nvim
nvim-treesitter.withAllGrammars
lualine-nvim
nvim-autopairs
nvim-web-devicons
nvim-cmp
nvim-surround
nvim-lspconfig
cmp-nvim-lsp
cmp-buffer
luasnip
cmp_luasnip
friendly-snippets
lspkind-nvim
comment-nvim
nvim-ts-context-commentstring
{
plugin = dracula-nvim;
}
plenary-nvim
neodev-nvim
luasnip
telescope-nvim
todo-comments-nvim
nvim-tree-lua
telescope-fzf-native-nvim
vim-tmux-navigator
];
extraConfig = ''
set noemoji
'';
extraLuaConfig = ''
${builtins.readFile ../../config/nvim/options.lua}
${builtins.readFile ../../config/nvim/keymaps.lua}
${builtins.readFile ../../config/nvim/plugins/alpha.lua}
${builtins.readFile ../../config/nvim/plugins/autopairs.lua}
${builtins.readFile ../../config/nvim/plugins/auto-session.lua}
${builtins.readFile ../../config/nvim/plugins/comment.lua}
${builtins.readFile ../../config/nvim/plugins/cmp.lua}
${builtins.readFile ../../config/nvim/plugins/lsp.lua}
${builtins.readFile ../../config/nvim/plugins/nvim-tree.lua}
${builtins.readFile ../../config/nvim/plugins/telescope.lua}
${builtins.readFile ../../config/nvim/plugins/todo-comments.lua}
${builtins.readFile ../../config/nvim/plugins/treesitter.lua}
require("ibl").setup()
require("bufferline").setup{}
require("lualine").setup({
icons_enabled = true,
theme = 'dracula',
})
'';
};
kitty = {
enable = true;
package = pkgs.kitty;
settings = {
scrollback_lines = 2000;
wheel_scroll_min_lines = 1;
window_padding_width = 4;
confirm_os_window_close = 0;
};
extraConfig = ''
tab_bar_style fade
tab_fade 1
active_tab_font_style bold
inactive_tab_font_style bold
'';
};
starship = {
enable = true;
package = pkgs.starship;
};
rofi = {
2024-05-17 09:58:47 +02:00
enable = true;
package = pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; };
extraConfig = {
modi = "drun,emoji,filebrowser,run";
show-icons = true;
icon-theme = "Papirus";
location = 0;
font = "JetBrainsMono Nerd Font Mono 16";
drun-display-format = "{icon} {name}";
display-drun = " Apps ";
display-run = " Run ";
display-filebrowser = " File ";
display-emoji = " Emoji ";
hover-select = true;
me-select-entry = "MouseSecondary";
me-accept-entry = "MousePrimary";
dpi = 1;
};
theme = let inherit (config.lib.formats.rasi) mkLiteral; in {
"*" = {
bg = mkLiteral "#${config.stylix.base16Scheme.base00}";
bg-alt = mkLiteral "#${config.stylix.base16Scheme.base09}";
foreground = mkLiteral "#${config.stylix.base16Scheme.base01}";
selected = mkLiteral "#${config.stylix.base16Scheme.base08}";
active = mkLiteral "#${config.stylix.base16Scheme.base0B}";
text-selected = mkLiteral "#${config.stylix.base16Scheme.base00}";
text-color = mkLiteral "#${config.stylix.base16Scheme.base05}";
border-color = mkLiteral "#${config.stylix.base16Scheme.base0F}";
urgent = mkLiteral "#${config.stylix.base16Scheme.base0E}";
};
"window" = {
width = mkLiteral "50%";
transparency = "real";
orientation = mkLiteral "vertical";
cursor = mkLiteral "default";
spacing = mkLiteral "0px";
border = mkLiteral "2px";
border-color = "@border-color";
border-radius = mkLiteral "20px";
background-color = mkLiteral "@bg";
};
"mainbox" = {
padding = mkLiteral "15px";
enabled = true;
orientation = mkLiteral "vertical";
children = map mkLiteral [ "inputbar" "listbox" ];
background-color = mkLiteral "transparent";
};
"inputbar" = {
enabled = true;
padding = mkLiteral "10px 10px 200px 10px";
margin = mkLiteral "10px";
background-color = mkLiteral "transparent";
border-radius = "25px";
orientation = mkLiteral "horizontal";
children = map mkLiteral ["entry" "dummy" "mode-switcher" ];
background-image = mkLiteral "url('~/Pictures/Wallpapers/zaney-wallpaper.jpg', width)";
};
"entry" = {
enabled = true;
expand = false;
width = mkLiteral "20%";
padding = mkLiteral "10px";
border-radius = mkLiteral "12px";
background-color = mkLiteral "@selected";
text-color = mkLiteral "@text-selected";
cursor = mkLiteral "text";
placeholder = mkLiteral "🖥 Search ";
placeholder-color = mkLiteral "inherit";
};
"listbox" = {
spacing = mkLiteral "10px";
padding = mkLiteral "10px";
background-color = mkLiteral "transparent";
orientation = mkLiteral "vertical";
children = map mkLiteral [ "message" "listview" ];
};
"listview" = {
enabled = true;
columns = 2;
lines = 6;
cycle = true;
dynamic = true;
scrollbar = false;
layout = mkLiteral "vertical";
reverse = false;
fixed-height = false;
fixed-columns = true;
spacing = mkLiteral "10px";
background-color = mkLiteral "transparent";
border = mkLiteral "0px";
};
"dummy" = {
expand = true;
background-color = mkLiteral "transparent";
};
"mode-switcher" = {
enabled = true;
spacing = mkLiteral "10px";
background-color = mkLiteral "transparent";
};
"button" = {
width = mkLiteral "5%";
padding = mkLiteral "12px";
border-radius = mkLiteral "12px";
background-color = mkLiteral "@text-selected";
text-color = mkLiteral "@text-color";
cursor = mkLiteral "pointer";
};
"button selected" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@text-selected";
};
"scrollbar" = {
width = mkLiteral "4px";
border = 0;
handle-color = mkLiteral "@border-color";
handle-width = mkLiteral "8px";
padding = 0;
};
"element" = {
enabled = true;
spacing = mkLiteral "10px";
padding = mkLiteral "10px";
border-radius = mkLiteral "12px";
background-color = mkLiteral "transparent";
cursor = mkLiteral "pointer";
};
"element normal.normal" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
};
"element normal.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@foreground";
};
"element normal.active" = {
background-color = mkLiteral "@active";
text-color = mkLiteral "@foreground";
};
"element selected.normal" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@text-selected";
};
"element selected.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element selected.active" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element alternate.normal" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element alternate.urgent" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element alternate.active" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element-icon" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
size = mkLiteral "36px";
cursor = mkLiteral "inherit";
};
"element-text" = {
background-color = mkLiteral "transparent";
font = "JetBrainsMono Nerd Font Mono 14";
text-color = mkLiteral "inherit";
cursor = mkLiteral "inherit";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"message" = {
background-color = mkLiteral "transparent";
border = mkLiteral "0px";
};
"textbox" = {
padding = mkLiteral "12px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@bg";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"error-message" = {
padding = mkLiteral "12px";
border-radius = mkLiteral "20px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@bg";
};
2024-05-17 09:58:47 +02:00
};
};
bash = {
enable = true;
enableCompletion = true;
profileExtra = ''
#if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
# exec Hyprland
#fi
'';
initExtra = ''
neofetch
if [ -f $HOME/.bashrc-personal ]; then
source $HOME/.bashrc-personal
fi
'';
shellAliases = {
sv = "sudo nvim";
flake-rebuild = "nh os switch --hostname ${host} /home/${username}/zaneyos";
flake-update = "nh os switch --hostname ${host} --update /home/${username}/zaneyos";
gcCleanup = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
v = "nvim";
ls = "lsd";
ll = "lsd -l";
la = "lsd -a";
lal = "lsd -al";
".." = "cd ..";
neofetch="neofetch --ascii ~/.config/ascii-neofetch";
};
2024-05-14 09:42:14 +02:00
};
home-manager.enable = true;
hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
2024-05-18 00:28:33 +02:00
grace = 10;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
2024-05-18 00:28:33 +02:00
path = "/home/${username}/Pictures/Wallpapers/zaney-wallpaper.jpg";
blur_passes = 3;
blur_size = 8;
}
];
2024-05-19 17:42:31 +02:00
image = [
{
path = "/home/${username}/.config/face.jpg";
size = 150;
border_size = 4;
border_color = "rgb(0C96F9)";
2024-05-19 17:42:31 +02:00
rounding = -1; # Negative means circle
position = "0, 200";
halign = "center";
valign = "center";
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(CFE6F4)";
inner_color = "rgb(657DC2)";
outer_color = "rgb(0D0E15)";
outline_thickness = 5;
placeholder_text = "Password...";
shadow_passes = 2;
}
];
};
2024-05-14 09:42:14 +02:00
};
};
2024-01-09 23:50:24 +01:00
}