zaneyos/hosts/familypc/home.nix

370 lines
10 KiB
Nix
Raw Normal View History

2024-05-14 08:44:34 +02:00
{
config,
pkgs,
inputs,
username,
host,
gtkThemeFromScheme,
...
}:
let
2024-05-15 00:55:17 +02:00
palette = config.colorScheme.palette;
2024-05-14 08:44:34 +02:00
inherit (import ./variables.nix)
gitUsername
gitEmail
theme
browser
;
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";
# Set The Colorscheme
2024-01-15 20:00:56 +01:00
colorScheme = inputs.nix-colors.colorSchemes."${theme}";
# Import Program Configurations
imports = [
2024-01-14 08:54:57 +01:00
inputs.nix-colors.homeManagerModules.default
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
];
2024-01-13 06:53:25 +01:00
# Define Settings For Xresources
2024-01-09 23:50:24 +01:00
xresources.properties = {
"Xcursor.size" = 24;
};
# Place Files Inside Home Directory
home.file."Pictures/Wallpapers" = {
source = ../../config/wallpapers;
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;
2024-05-15 01:02:45 +02:00
home.file.".emoji".source = ../../config/emoji;
home.file.".face.icon".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"
'';
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" ];
};
};
# Configure Cursor Theme
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 24;
};
# Theme GTK
gtk = {
enable = true;
font = {
name = "Ubuntu";
size = 12;
package = pkgs.ubuntu_font_family;
};
theme = {
name = "${config.colorScheme.slug}";
2024-05-15 02:46:02 +02:00
package = gtkThemeFromScheme { scheme = config.colorScheme; };
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
gtk3.extraConfig = {
2024-05-15 02:46:02 +02:00
gtk-application-prefer-dark-theme = 1;
};
gtk4.extraConfig = {
2024-05-15 02:46:02 +02:00
gtk-application-prefer-dark-theme = 1;
};
};
# Theme QT -> GTK
qt = {
enable = true;
platformTheme = "gtk";
style = {
2024-05-15 02:46:02 +02:00
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
};
# Scripts
home.packages = with pkgs; [
(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;
})
];
programs = {
gh.enable = true;
2024-05-15 18:30:36 +02:00
neovim =
let
toLua = str: "lua << EOF\n${str}\nEOF\n";
toLuaFile = file: "lua << EOF\n${builtins.readFile file}\nEOF\n";
in
{
2024-05-15 02:46:02 +02:00
enable = true;
defaultEditor = true;
viAlias = true;
2024-05-15 02:46:02 +02:00
vimAlias = true;
vimdiffAlias = true;
2024-05-15 18:30:36 +02:00
extraPackages = with pkgs; [
lua-language-server
];
2024-05-15 02:46:02 +02:00
plugins = with pkgs.vimPlugins; [
alpha-nvim
auto-session
2024-05-15 20:24:12 +02:00
bufferline-nvim
dressing-nvim
2024-05-15 20:45:47 +02:00
indent-blankline-nvim
2024-05-15 02:46:02 +02:00
nvim-treesitter.withAllGrammars
2024-05-15 18:47:34 +02:00
lualine-nvim
2024-05-15 21:05:11 +02:00
nvim-autopairs
2024-05-15 18:47:34 +02:00
nvim-web-devicons
nvim-cmp
nvim-surround
nvim-lspconfig
cmp-nvim-lsp
cmp-buffer
luasnip
cmp_luasnip
friendly-snippets
lspkind-nvim
2024-05-15 18:32:56 +02:00
comment-nvim
nvim-ts-context-commentstring
{
plugin = dracula-nvim;
config = "colorscheme dracula";
}
plenary-nvim
2024-05-15 18:30:36 +02:00
neodev-nvim
2024-05-15 18:53:20 +02:00
luasnip
2024-05-15 18:47:34 +02:00
telescope-nvim
todo-comments-nvim
2024-05-15 20:01:25 +02:00
nvim-tree-lua
2024-05-15 18:56:07 +02:00
telescope-fzf-native-nvim
vim-tmux-navigator
mason-nvim
mason-lspconfig-nvim
2024-05-15 02:46:02 +02:00
];
2024-05-15 04:01:05 +02:00
extraLuaConfig = ''
${builtins.readFile ../../config/nvim/options.lua}
${builtins.readFile ../../config/nvim/keymaps.lua}
${builtins.readFile ../../config/nvim/plugins/alpha.lua}
2024-05-15 21:05:11 +02:00
${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}
2024-05-15 20:01:25 +02:00
${builtins.readFile ../../config/nvim/plugins/nvim-tree.lua}
${builtins.readFile ../../config/nvim/plugins/telescope.lua}
${builtins.readFile ../../config/nvim/plugins/todo-comments.lua}
2024-05-15 19:08:53 +02:00
${builtins.readFile ../../config/nvim/plugins/treesitter.lua}
2024-05-15 20:50:05 +02:00
require("ibl").setup()
require("bufferline").setup{}
2024-05-15 18:47:34 +02:00
require("lualine").setup({
icons_enabled = true,
theme = 'dracula',
})
2024-05-15 04:01:05 +02:00
'';
2024-05-15 02:46:02 +02:00
};
kitty = {
enable = true;
package = pkgs.kitty;
font.name = "JetBrainsMono Nerd Font";
font.size = 16;
settings = {
scrollback_lines = 2000;
wheel_scroll_min_lines = 1;
window_padding_width = 4;
confirm_os_window_close = 0;
background_opacity = "0.9";
};
extraConfig = ''
foreground #${palette.base05}
background #${palette.base00}
color0 #${palette.base03}
color1 #${palette.base08}
color2 #${palette.base0B}
color3 #${palette.base09}
color4 #${palette.base0D}
color5 #${palette.base0E}
color6 #${palette.base0C}
color7 #${palette.base06}
color8 #${palette.base04}
color9 #${palette.base08}
color10 #${palette.base0B}
color11 #${palette.base0A}
color12 #${palette.base0C}
color13 #${palette.base0E}
color14 #${palette.base0C}
color15 #${palette.base07}
color16 #${palette.base00}
color17 #${palette.base0F}
color18 #${palette.base0B}
color19 #${palette.base09}
color20 #${palette.base0D}
color21 #${palette.base0E}
color22 #${palette.base0C}
color23 #${palette.base06}
cursor #${palette.base07}
cursor_text_color #${palette.base00}
selection_foreground #${palette.base01}
selection_background #${palette.base0D}
url_color #${palette.base0C}
active_border_color #${palette.base04}
inactive_border_color #${palette.base00}
bell_border_color #${palette.base03}
tab_bar_style fade
tab_fade 1
active_tab_foreground #${palette.base04}
active_tab_background #${palette.base00}
active_tab_font_style bold
inactive_tab_foreground #${palette.base07}
inactive_tab_background #${palette.base08}
inactive_tab_font_style bold
tab_bar_background #${palette.base00}
'';
};
starship = {
enable = true;
package = pkgs.starship;
};
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
'';
sessionVariables = {
ZANEYOS = true;
};
shellAliases = {
sv = "sudo nvim";
flake-rebuild = "nh os switch --hostname ${host} /home/${username}/zaneyos";
flake-update = "nh os switch --hostname ${host} --update";
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 ..";
};
2024-05-14 09:42:14 +02:00
};
home-manager.enable = true;
hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
grace = 300;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "/home/${username}/.config/wallpapers/zaney-wallpaper.jpg";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(202, 211, 245)";
inner_color = "rgb(91, 96, 120)";
outer_color = "rgb(24, 25, 38)";
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
}