{ config, pkgs, ... }: { home.username = "th3r00t"; home.homeDirectory = "/home/th3r00t"; home.file.".local/usr/bin" = { source = ./home/.local/usr/bin; recursive = true; executable = true; }; home.file.".local/usr/lib/blightmud" = { source = ./home/.local/usr/lib/blightmud; recursive = true; executable = true; }; home.file.".config/nvim" = { source = ./home/config/nvim; recursive = true; executable = true; }; home.file.".irssi" = { source = ./home/.irssi; recursive = true; executable = true; }; home.file.".config/dosbox-x" = { source = ./home/config/dosbox-x; recursive = true; executable = true; }; home.file.".config/waybar/power_menu.xml" = { source = ./home/config/waybar/power_menu.xml; recursive = true; executable = true; }; home.file.".config/qutebrowser/blocked-hosts" = { source = ./home/config/qutebrowser/blocked-hosts; recursive = true; executable = true; }; home.file.".ssh/allowed_signers".text = '' * ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH8P/3yzsruekSaZ9b+yk429VTcfCtI1j8jnkNbPAgnr th3r00t@nixos ''; imports = [ includes/hyprland.nix ]; xdg.enable = true; programs.nix-index.enable = true; fonts.fontconfig.enable = true; home.packages = with pkgs; [ autossh mesa-demos bluez bluez-tools bluez-alsa fastfetch ranger zip unzip xz p7zip ripgrep jq ripgrep eza fzf tmux cowsay lolcat fortune gnused gnutar gnupg hugo bat which nix-output-monitor devenv irssi luarocks lua5_1 gimp lua-language-server go nodejs uv readline cachix sqlite rofi qutebrowser foot vifm-full ranger zoxide ( python313.withPackages ( python-pkgs: [ python-pkgs.prompt_toolkit python-pkgs.pygments python-pkgs.pynvim python-pkgs.pudb python-pkgs.ptpython python-pkgs.ipython ] ) ) neovim zig nodejs go syncthing dosbox-x lazygit wofi qutebrowser waybar uwsm gopls pyright ncurses rustup wayvnc power-profiles-daemon xfce.thunar xfce.thunar-volman xfce.thunar-vcs-plugin xfce.thunar-archive-plugin xfce.thunar-media-tags-plugin gvfs ]; programs.wofi = { enable = true; settings = { location = "top-center"; allow_markup = true; width = 400; }; style = '' /* Base */ window { background-color: rgba(17, 24, 39, 0.6); box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1); border-radius: 1rem; font-size: 1rem; } window #outer-box { } window #outer-box #input { background-color: rgba(17,24,39,0.6); color: #c0caf5; border: none; border-bottom: 1px solid rgba(17,24,39,0.2); padding: 0.8rem 1rem; font-size: 1rem; border-radius: 1rem 1rem 0 0; } /* focus states (no #window!) */ window #outer-box #input:focus, window #outer-box #input:focus-visible, window #outer-box #input:active { border: none; outline: 2px solid transparent; outline-offset: 2px; } window #outer-box #scroll { } window #outer-box #scroll #inner-box { } window #outer-box #scroll #inner-box #entry { color: #c0caf5; background-color: rgba(17,24,39,0.1); 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: #c0caf5; background-color: rgba(38,50,56,0.1); outline: none; } ''; }; programs.neovim.plugins = [ pkgs.vimPlugins.nvim-treesitter.withAllGrammars ]; programs.taskwarrior = { enable = true; }; services.syncthing = { enable = true; }; programs.ranger = { enable = true; extraConfig = '' ''; extraPackages = [ ]; mappings = { Q = "quitall"; q = "quit"; }; plugins = [ { name = "zoxide"; src = builtins.fetchGit { url = "https://github.com/jchook/ranger-zoxide.git"; rev = "363df97af34c96ea873c5b13b035413f56b12ead"; }; } { name = "tmux"; src = builtins.fetchGit { url = "https://github.com/joouha/ranger_tmux.git"; rev = "05ba5ddf2ce5659a90aa0ada70eb1078470d972a"; }; } ]; settings = { column_ratios = "1,3,3"; confirm_on_delete = "never"; scroll_offset = 8; unicode_ellipsis = true; }; }; programs.fzf = { enable = true; tmux.enableShellIntegration = true; enableZshIntegration = true; colors = { fg = "#d0d0d0"; bg = "#24283b"; hl = "#5f87af"; "fg+" = "#d0d0d0"; "bg+" = "#414868"; "hl+" = "#5fd7ff"; info = "#afaf87"; prompt = "#d7005f"; pointer = "#af5fff"; marker = "#87ff00"; spinner = "#af5fff"; header = "#87afaf"; }; }; programs.tmux = { enable = true; baseIndex = 1; clock24 = true; disableConfirmationPrompt = true; keyMode = "vi"; mouse = true; newSession = true; plugins = with pkgs; [ tmuxPlugins.cpu { plugin = tmuxPlugins.resurrect; extraConfig = "set -g @resurrect-strategy-nvim 'session'"; } { plugin = tmuxPlugins.continuum; extraConfig = '' set -g @continuum-restore 'on' set -g @continuum-save-interval '60' ''; } tmuxPlugins.yank tmuxPlugins.vim-tmux-navigator tmuxPlugins.vim-tmux-focus-events tmuxPlugins.urlview { plugin = tmuxPlugins.tokyo-night-tmux; extraConfig = '' set -g @tokyo-night-tmux_window_id_style digital set -g @tokyo-night-tmux_pane_id_style hsquare set -g @tokyo-night-tmux_zoom_id_style dsquare set -g @tokyo-night-tmux_show_netspeed 1 set -g @tokyo-night-tmux_netspeed_iface "wlp2s0" # Detected via default route set -g @tokyo-night-tmux_netspeed_showip 1 # Display IPv4 address (default 0) set -g @tokyo-night-tmux_netspeed_refresh 1 # Update interval in seconds (default 1) set -g @tokyo-night-tmux_show_path 1 set -g @tokyo-night-tmux_path_format relative # 'relative' or 'full' set -g @tokyo-night-tmux_show_battery_widget 1 set -g @tokyo-night-tmux_battery_name "BAT0" # some linux distro have 'BAT0' set -g @tokyo-night-tmux_battery_low_threshold 21 # default ''; } tmuxPlugins.tmux-fzf # { # plugin = tmuxPlugins.tilish; # extraConfig = '' # set -g @tilish-navigator 'on' # set -g @tilish-default 'main-vertical' # set -g @tilish-enforce 'none' # set -g escape-time 0 # set -g @tilish-dmenu 'on' # ''; # } ]; prefix = "C-a"; shell = "${pkgs.zsh}/bin/zsh"; # terminal = "xterm-kitty:RGB"; tmuxinator.enable = true; extraConfig = '' set-option -g update-environment "DISPLAY XAUTHORITY WAYLAND_DISPLAY XDG_RUNTIME_DIR HYPRLAND_INSTANCE_SIGNATURE" set -g focus-events on set -g escape-time 3 set-option -g status-position top set-option -as terminal-features 'foot:RGB' set -g default-terminal 'tmux-256color' bind-key b choose-tree -Z "run-shell 'tmux swap-pane -s %%'" # bind C-p display-popup -E -w 60% -h 70% 'tmuxsessions.sh' bind C-p run-shell 'tmuxsessions.sh' bind C-d run-shell 'dotfile-picker.sh' bind [ run-shell 'project-picker.sh' # bind C-c display-popup -E -w 50% -h 50% 'nvim +":cd ~/org" ~/org/refile.norg' # bind C-c display-popup -E -w 50% -h 50% 'nvim +"VimwikiIndex" bind C-c display-popup -E -w 40% -h 60% "pytui -n" # bind C-w display-popup -E -w 40% -h 60% "pytui -D" bind C-o display-popup -E -w 50% -h 50% 'igrep ~/wiki/notes' bind j run-shell 'popuptmux' bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!" bind i split-window -v -c '\ #{pane_current_path}' 'emojicherrypick.py --menu fzf\ ' bind-key -n F4 run-shell 'ranger' # bind-key -n C-e split-window -v -c '\ #{pane_current_path}' 'vifm\' bind-key -n C-f split-window 'ranger .' bind F3 send-keys 'igrep .' C-m ''; }; programs.git = { enable = true; userName = "th3r00t"; userEmail = "tty303@proton.me"; extraConfig = { commit.gpgSign = true; gpg.format = "ssh"; gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; user.signingkey = "~/.ssh/id_ed25519.pub"; }; }; programs.direnv = { enable = true; enableZshIntegration = true; nix-direnv.enable = true; }; programs.foot = { enable = true; server.enable = true; settings = { main = { term = "foot"; font = "SauceCodePro 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"; }; }; }; programs.eza = { enable = true; enableBashIntegration = true; enableZshIntegration = true; }; programs.starship = { enable = true; # custom settings settings = { add_newline = false; aws.disabled = true; gcloud.disabled = true; line_break.disabled = true; }; }; programs.zsh = { enable = true; sessionVariables = { PATH="$PATH:$HOME/.local/usr/bin"; PYTHONBREAKPOINT="pudb.set_trace"; }; oh-my-zsh = { enable = true; plugins = [ "git" "colored-man-pages" "colorize" "command-not-found" "compleat" "dirhistory" "fzf" "git-auto-fetch" "git-extras" "git-prompt" "gitignore" "gpg-agent" "history" "jsontools" "man" "nmap" "pip" "python" "ssh-agent" "sudo" "tmux" "vi-mode" "zsh-navigation-tools" ]; # theme = "starship"; }; }; programs.bash = { enable = true; enableCompletion = true; bashrcExtra = '' export PATH="$PATH:$HOME/.local/usr/bin"; ''; shellAliases = { urlencode = "python3 -c 'import sys, urllib.parse as ul; print(ul.quote_plus(sys.stdin.read()))'"; urldecode = "python3 -c 'import sys, urllib.parse as ul; print(il.unquote_plus(sys.stdin.read()))'"; ls = "eza"; cat = "bat"; }; }; programs.hyprlock = { enable = true; settings = { general = { disable_loading_bar = true; grace = 300; hide_cursor = true; no_fade_in = false; }; background = [ { path = "screenshot"; blur_passes = 3; blur_size = 8; } ]; input-field = [ { size = "400, 100"; 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; } ]; }; }; services.hypridle = { enable = true; settings = { general = { after_sleep_cmd = "hyprctl dispatch dpms on"; ignore_dbus_inhibit = false; lock_cmd = "hyprlock"; }; listener = [ { timeout = 300; on-timeout = "hyprlock"; } { timeout = 600; on-timeout = "hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } ]; }; }; home.stateVersion = "25.05"; }