zaneyos/hosts/familypc/home.nix

451 lines
12 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
;
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;
};
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;
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"
'';
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" ];
};
};
# 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 = [
(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;
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;
config = "colorscheme dracula";
}
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;
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;
};
2024-05-17 09:58:47 +02:00
wofi = {
enable = true;
settings = {
allow_images = true;
2024-05-17 10:32:17 +02:00
prompt = "Run Programs...";
width = "35%";
2024-05-17 09:58:47 +02:00
hide_scroll = true;
term = "kitty";
show = "drun";
};
style = ''
* {
font-family: JetBrainsMono Nerd Font Mono,monospace;
font-weight: bold;
}
#window {
2024-05-17 11:06:51 +02:00
border-radius: 25px;
border: 2px solid #${palette.base08};
2024-05-17 09:58:47 +02:00
background: #${palette.base00};
}
#input {
2024-05-17 11:06:51 +02:00
border-radius: 10px;
2024-05-17 10:32:17 +02:00
border: 2px solid #${palette.base0B};
2024-05-17 09:58:47 +02:00
margin: 20px;
padding: 15px 25px;
background: #${palette.base00};
color: #${palette.base05};
}
2024-05-17 11:06:51 +02:00
#inner-box {
border: none;
background-color: transparent;
}
2024-05-17 09:58:47 +02:00
#outer-box {
2024-05-17 11:06:51 +02:00
border: none;
2024-05-17 09:58:47 +02:00
font-weight: bold;
font-size: 14px;
}
2024-05-17 11:06:51 +02:00
#text {
border: none;
}
2024-05-17 09:58:47 +02:00
#entry {
margin: 10px 80px;
padding: 20px 20px;
2024-05-17 11:06:51 +02:00
border-radius: 10px;
border: none;
2024-05-17 09:58:47 +02:00
}
2024-05-17 11:06:51 +02:00
#entry:focus {
border: none;
2024-05-17 09:58:47 +02:00
}
#entry:hover {
2024-05-17 11:06:51 +02:00
border: none;
}
#entry:selected {
background-color: #${palette.base0F};
color: #${palette.base00};
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
'';
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;
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;
}
];
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
}