{ config, pkgs, ... }: { home.username = "th3r00t"; home.homeDirectory = "/home/th3r00t"; home.file.".config/dosbox-x" = { source = ./.config/dosbox-x; recursive = true; executable = true; }; home.file.".config/kitty/themes" = { source = ./.config/kitty/themes; recursive = true; # executable = true; }; home.file.".config/waybar/power_menu.xml" = { source = ./.config/waybar/power_menu.xml; recursive = true; executable = true; }; home.file.".config/qutebrowser/blocked-hosts" = { source = ./.config/qutebrowser/blocked-hosts; recursive = true; executable = true; }; imports = [ ../modules/hyprland.nix ./common.nix ]; xdg = { enable = true; mime = { enable = true; }; mimeApps = { defaultApplications = { "text/html" = [ "qutebrowser.desktop" ]; "application/xhtml+xml" = [ "qutebrowser.desktop" ]; "application/xml" = [ "qutebrowser.desktop" ]; "application/lua" = [ "nvim" ]; "image/svg+xml" = [ "qutebrowser.desktop" ]; "image/png" = [ "qutebrowser.desktop" ]; "image/jpeg" = [ "qutebrowser.desktop" ]; "image/gif" = [ "qutebrowser.desktop" ]; "application/pdf" = [ "qutebrowser.desktop" ]; "video/mp4" = [ "qutebrowser.desktop" ]; "video/webm" = [ "qutebrowser.desktop" ]; "video/x-matroska" = [ "qutebrowser.desktop" ]; "audio/mpeg" = [ "qutebrowser.desktop" ]; "audio/ogg" = [ "qutebrowser.desktop" ]; "audio/wav" = [ "qutebrowser.desktop" ]; "application/zip" = [ "nemo.desktop" ]; }; }; }; programs.nix-index.enable = true; fonts.fontconfig.enable = true; home.sessionVariables = { EDITOR = "nvim"; BROWSER = "qutebrowser"; PLATFORMTHEME = "kde"; }; nixpkgs.config.allowUnfree = true; home.packages = with pkgs; [ mesa-demos bluez bluez-tools bluez-alsa kdePackages.dolphin gimp rofi qutebrowser foot hyprsysteminfo dosbox-x wofi qutebrowser waybar uwsm power-profiles-daemon wpa_supplicant_gui gvfs nemo-with-extensions wayvnc xdg-desktop-portal-wlr exfatprogs neovide ghostty # wineWowPackages.staging wineWowPackages.waylandFull winetricks openmw virt-viewer kitty galaxy-buds-client hyprshot nim nimlangserver nimlsp nimble dunst dwl dwlb swaybg simulide arduino-cli rpi-imager wlr-randr ]; programs = { ghostty = { enable = true; settings = { theme = "tokyonight"; font-family = "FiraCode Nerd Font Mono"; font-size = 10; keybind = [ "ctrl+a>c=new_tab" "ctrl+a>n=next_tab" "ctrl+a>p=previous_tab" "ctrl+a>x=close_tab" "ctrl+a>1=goto_tab:1" "ctrl+a>2=goto_tab:2" "ctrl+a>3=goto_tab:3" "ctrl+a>4=goto_tab:4" "ctrl+a>5=goto_tab:5" "ctrl+a>6=goto_tab:6" "ctrl+a>7=goto_tab:7" "ctrl+a>8=goto_tab:8" "ctrl+a>9=goto_tab:9" "ctrl+a>0=goto_tab:10" "ctrl+a>v=new_split:right" "ctrl+a>h=new_split:down" "ctrl+a>z=toggle_split_zoom" "ctrl+a>q=close_surface" "ctrl+h=goto_split:left" "ctrl+j=goto_split:down" "ctrl+k=goto_split:up" "ctrl+l=goto_split:right" "ctrl+a>up=resize_split:up,20" "ctrl+a>down=resize_split:down,20" "ctrl+a>left=resize_split:left,20" "ctrl+a>right=resize_split:right,20" "ctrl+a>r=reload_config" # "ctrl+a>j=toggle_quick_terminal" # "ctrl+a>p=toggle_command_palette" ]; }; installVimSyntax = true; enableZshIntegration = true; installBatSyntax = true; themes = { catppuccin-mocha = { background = "1e1e2e"; cursor-color = "f5e0dc"; foreground = "cdd6f4"; palette = [ "0=#45475a" "1=#f38ba8" "2=#a6e3a1" "3=#f9e2af" "4=#89b4fa" "5=#f5c2e7" "6=#94e2d5" "7=#bac2de" "8=#585b70" "9=#f38ba8" "10=#a6e3a1" "11=#f9e2af" "12=#89b4fa" "13=#f5c2e7" "14=#94e2d5" "15=#a6adc8" ]; selection-background = "353749"; selection-foreground = "cdd6f4"; }; }; }; neovide = { enable = true; settings = { fork = false; frame = "full"; idle = true; maximized = false; neovim-bin = "${pkgs.neovim}/bin/nvim"; no-multigrid = false; srgb = false; tabs = true; title-hidden = true; vsync = true; wsl = false; font = { normal = "SauceCodePro Nerd Font Mono"; size = 11; }; }; }; wofi = { enable = true; settings = { location = "top-center"; allow_markup = true; width = 400; }; style = '' /* Cyberdream theme for wofi */ window { background-color: rgba(22, 24, 26, 0.95); box-shadow: 0 10px 15px -3px rgba(0,0,0,0.3), 0 4px 6px -4px rgba(0,0,0,0.2); border-radius: 1rem; border: 1px solid rgba(94, 161, 255, 0.3); font-size: 1rem; font-family: "FiraCode Nerd Font Mono"; } window #outer-box { } window #outer-box #input { background-color: rgba(60, 64, 72, 0.8); color: #ffffff; border: none; border-bottom: 1px solid rgba(94, 161, 255, 0.5); padding: 0.8rem 1rem; font-size: 1rem; border-radius: 1rem 1rem 0 0; } /* focus states */ window #outer-box #input:focus, window #outer-box #input:focus-visible, window #outer-box #input:active { border: none; outline: 2px solid rgba(94, 161, 255, 0.6); outline-offset: 2px; } window #outer-box #scroll { } window #outer-box #scroll #inner-box { } window #outer-box #scroll #inner-box #entry { color: #ffffff; background-color: rgba(22, 24, 26, 0.3); padding: 0.6rem 1rem; } window #outer-box #scroll #inner-box #entry #img { width: 1rem; margin-right: 0.5rem; } window #outer-box #scroll #inner-box #entry:selected { color: #ffffff; background-color: rgba(94, 161, 255, 0.6); outline: none; } ''; }; kitty = { enable = true; enableGitIntegration = true; font = { name = "FiraCode Nerd Font Mono"; size = 9; }; actionAliases = { "pytui" = "launch pytui"; "ranger" = "launch ranger"; }; keybindings = { "ctrl+c" = "copy_or_interupt"; "ctrl+shift+c" = "pytui -n"; "ctrl+f" = "ranger ."; }; settings = { scrollback_lines = 10000; enable_audio_bell = true; update_check_interval = 7; }; # https://github.com/kovidgoyal/kitty-themes/tree/master/themes # themeFile = "tokyo_night_night"; # Custom cyberdream theme copied via home.file shellIntegration = { enableZshIntegration = true; enableFishIntegration = true; }; extraConfig = '' shell zsh dynamic_background_opacity yes background_opacity 0.7 # Import cyberdream theme include ./themes/cyberdream.conf ''; }; foot = { enable = true; server.enable = false; settings = { main = { term = "foot"; font = "FiraCode Nerd Font Mono:size=6"; dpi-aware = "yes"; shell = "${pkgs.zsh}/bin/zsh"; }; mouse = { hide-when-typing = "yes"; }; cursor = { style = "block"; blink = "yes"; }; colors = { alpha = "0.7"; background="1a1b26"; foreground="a9b1d6"; flash="ff9e64"; flash-alpha="0.5"; regular0="1a1b26"; regular1="f7768e"; regular2="9ece6a"; regular3="e0af68"; regular4="7aa2f7"; regular5="bb9af7"; regular6="7dcfff"; regular7="c0caf5"; bright0="545c7e"; bright1="ff7a93"; bright2="b9f27c"; bright3="ff9e64"; bright4="7aa2f7"; bright5="bb9af7"; bright6="7dcfff"; bright7="a9b1d6"; sixel0="1a1b26"; sixel1="7aa2f7"; sixel2="f7768e"; sixel3="9ece6a"; sixel4="bb9af7"; sixel5="7dcfff"; sixel6="e0af68"; sixel7="565f89"; sixel8="414868"; sixel9="4e5173"; sixel10="8f5151"; sixel11="4e7652"; sixel12="8a4d8f"; sixel13="4e757a"; sixel14="8a8851"; sixel15="a9b1d6"; selection-foreground="1a1b26"; selection-background="a9b1d6"; jump-labels="1a1b26 e0af68"; scrollback-indicator="1a1b26 7aa2f7"; search-box-no-match="1a1b26 f7768e"; search-box-match="1a1b26 e0af68"; urls="e0af68"; }; }; }; }; services.udiskie = { enable = false; settings = { program_options = { file_manager = "${pkgs.nemo-with-extensions}/bin/nemo"; }; }; }; services.mpris-proxy.enable = true; home.stateVersion = "25.05"; }