{ config, pkgs, ... }: let flake-compat = builtins.fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz"; hyprland = (import flake-compat { src = builtins.fetchTarball "https://github.com/hyprwm/Hyprland/archive/master.tar.gz"; }).defaultNix; kitty_notest = pkgs.kitty.overridePythonAttrs (oldAttrs: { doCheck = false; checkPhase = ""; }); in { imports = [ # who are you? ./bolt.nix # ./fossil.nix # ./plank.nix hyprland.homeManagerModules.default ]; nixpkgs.config.packageOverrides = pkgs: { nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { inherit pkgs; }; }; wayland.windowManager.hyprland = { enable = true; systemdIntegration = true; nvidiaPatches = true; extraConfig = '' exec-once = waybar exec-once = keepassxc exec-once = mako exec-once = ckb-next -c -b exec-once = swaybg -i $HOME/Downloads/00026.png exec-once = xrdb $HOME/.Xresources input { kb_layout=us kb_options=caps:escape,escape:caps } general { no_border_on_floating=true layout=dwindle border_size=3 gaps_in=10 gaps_out=20 } dwindle { preserve_split=true pseudotile=true use_active_for_splits=true } decoration { rounding=8 blur=0 } animations { enabled=1 bezier=overshot,0.05,0.9,0.1,1.1 bezier=smooth,0.06,0.94,0.1,1.0 bezier=slosmooth,0.1,0.89,0.14,0.96 animation=windows,1,6,overshot,popin animation=workspaces,1,6,smooth,slidevert animation=specialWorkspace,1,6,overshot,slide } misc { disable_hyprland_logo=true disable_splash_rendering=true } monitor=,highrr,auto,1 bind=SUPER,Return,exec,kitty bind=SUPER,F,exec,firefox bind=SUPER,D,exec,fuzzel bind=SUPER_SHIFT,Q,killactive bind=SUPER_SHIFT,space,fullscreen,0 bind=SUPER,space,togglefloating bind=SUPER,h,movefocus,l bind=SUPER,l,movefocus,r bind=SUPER,j,movefocus,d bind=SUPER,k,movefocus,u bind=SUPER_SHIFT,h,movewindow,l bind=SUPER_SHIFT,l,movewindow,r bind=SUPER_SHIFT,j,movewindow,d bind=SUPER_SHIFT,k,movewindow,u bind=SUPER,s,togglesplit bind=SUPER,1,workspace,1 bind=SUPER,2,workspace,2 bind=SUPER,3,workspace,3 bind=SUPER,4,workspace,4 bind=SUPER_SHIFT,1,movetoworkspacesilent,1 bind=SUPER_SHIFT,2,movetoworkspacesilent,2 bind=SUPER_SHIFT,3,movetoworkspacesilent,3 bind=SUPER_SHIFT,4,movetoworkspacesilent,4 bind=SUPER_CTRL,h,resizeactive,-40 0 bind=SUPER_CTRL,l,resizeactive,40 0 bind=SUPER_CTRL,j,resizeactive,0 -40 bind=SUPER_CTRL,k,resizeactive,0 40 bind=SUPER,minus,togglespecialworkspace bind=SUPER_SHIFT,minus,movetoworkspace,special bind=SUPER_SHIFT,S,exec,grim -g "$(slurp)" -t png -o "$HOME/Pictures/$(date +%F_%H-%m-%S).png" && notify-send "Screenshot taken." bind=SUPER_SHIFT_CTRL,S,exec,wf-recorder -a -f "$HOME/Videos/recording_($date +%F_%H-%m-%S).mp4" && notify-send "Recording desktop.." bind=SUPER_SHIFT,E,exec,wlogout bind=,XF86AudioMute,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle && notify-send "Audio" "Mute $(if [ $(pactl get-sink-mute @DEFAULT_SINK@ | rg yes | wc -l) -eq 1 ]; then printf on; else printf off; fi)." bind=,XF86AudioRaiseVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ +5% && notify-send "Audio" "Volume at $(pactl get-sink-volume @DEFAULT_SINK@ | cut -d' ' -f 6)" bind=,XF86AudioLowerVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ -5% && notify-send "Audio" "Volume at $(pactl get-sink-volume @DEFAULT_SINK@ | cut -d' ' -f 6)" bind=,XF86AudioStop,exec,cmus-remote -s && notify-send "Music" "Playback stopped." bind=,XF86AudioPlay,exec,cmus-remote -u && notify-send "Music" "Playback status: $(cmus-remote -Q | head -n 1 | cut -d' ' -f 2)" bind=,XF86AudioPrev,exec,cmus-remote -r && notify-send "Music" "Now playing:\n$(cmus-remote -Q | rg -e 'artist|title' | cut -d' ' -f 3-)" bind=,XF86AudioNext,exec,cmus-remote -n && notify-send "Music" "Now playing:\n$(cmus-remote -Q | rg -e 'artist|title' | cut -d' ' -f 3-)" ''; }; nixpkgs.config.allowUnfree = true; home.packages = with pkgs; [ thunderbird clementine inkscape grim slurp mako swaybg wlogout wf-recorder libnotify fuzzel waybar pulseaudio # yuck! just for pactl.. btop bat joshuto ripgrep fd lazygit fzf # kdeconnect # maybe once i get an android keepassxc direnv mpv syncthing zoxide meslo-lgs-nf libreoffice-qt libsForQt5.ark libsForQt5.qtstyleplugin-kvantum libsForQt5.bismuth gtk-engine-murrine # plasma-browser-integration (callPackage ./homepkgs/git-credential-keepassxc.nix { }) (callPackage ./homepkgs/culr.nix { }) (callPackage ./homepkgs/glpaper.nix { }) ]; xdg.enable = true; programs.mako = { enable = true; anchor = "bottom-right"; borderRadius = 8; borderSize = 2; defaultTimeout = 3500; ignoreTimeout = true; font = "Visby Regular 14"; }; programs.vscode = { enable = true; # enableExtensionUpdateCheck = false; # enableUpdateCheck = false; package = pkgs.vscodium; extensions = []; mutableExtensionsDir = false; }; # xdg.desktopEntries = { # vscodium-url = { # name = "VsCodium"; # genericName = "Text Editor"; # exec = "codium --disable-gpu-sandbox --open-url %U"; # icon = "code"; # comment = "Code Editing. Redefined."; # categories = [ "Utility" "TextEditor" "Development" "IDE" ]; # # keywords = [ "vscode" ]; # mimeType = [ "x-scheme-handler/vscode" ]; # noDisplay = true; # startupNotify = true; # type = "Application"; # }; # vscodium = { # categories = [ "Utility" "TextEditor" "Development" "IDE" ]; # comment = "Code Editing. Redefined."; # exec = "codium --disable-gpu-sandbox %F"; # genericName = "Text Editor"; # icon = "code"; # # keywords = [ "vscode" ]; # mimeType = [ "text/plain" "inode/directory" ]; # name = "VsCodium"; # startupNotify = true; # # startupWMClass = "vscodium"; # type = "Application"; # }; # }; programs.direnv = { enable = true; nix-direnv = { enable = true; }; }; gtk = { enable = true; # theme = { # package = (pkgs.callPackage ./homepkgs/simplewaita-gtk.nix {}); # name = "simplewaita"; # }; }; programs.firefox = { package = pkgs.firefox.override { cfg = { enablePlasmaBrowserIntegration = true; }; }; enable = true; extensions = with pkgs.nur.repos.rycee.firefox-addons; [ vimium-c darkreader localcdn ublock-origin bypass-paywalls-clean sidebery plasma-integration keepassxc-browser user-agent-string-switcher # happy-bonobo-disable-webrtc ]; profiles.default = { id = 0; name = "Default"; settings = { "browser.startup.homepage" = "about:blank"; }; }; }; services.syncthing = { enable = true; }; services.kdeconnect = { enable = true; indicator = true; }; programs.kitty = { enable = true; package = kitty_notest; font = { name = "Ellograph CF"; size = 10; }; settings = { foreground = "#d3dae3"; background = "#060604"; cursor = "#d3dae3"; selection_foreground = "#fdbc4b"; selection_background = "#1e2233"; color0 = "#2f343f"; color1 = "#ed244e"; color2 = "#27ae60"; color3 = "#f67400"; color4 = "#2980b9"; color5 = "#c50ed2"; color6 = "#3daee9"; color7 = "#a1a9b1"; color8 = "#1e2233"; color9 = "#da4453"; color10 = "#71f79f"; color11 = "#fdbc4b"; color12 = "#1d99f3"; color13 = "#9b59b6"; color14 = "#5294e2"; color15 = "#656a73"; }; }; programs.git = { enable = true; userName = "atagen"; userEmail = "atagen@boss.co"; extraConfig = { credential.helper = "keepassxc"; }; }; programs.zoxide = { enable = true; enableZshIntegration = true; }; programs.fzf = { enable = true; enableZshIntegration = true; # colors = { # fg = "#d3dae3"; # "fg+" = "#d3dae3"; # bg = "#060604"; # "bg+" = "#060604"; # preview-fg = "#fdbc4b"; # preview-bg = "#1e2233"; # hl = "#da4453"; # "hl+" = "#ed244e"; # info = "#fdbc4b"; # border = "#656a73"; # prompt = "#c50ed2"; # pointer = "#27ae60"; # header = "#da4453"; # }; }; programs.zsh = { enable = true; enableAutosuggestions = true; enableCompletion = true; enableSyntaxHighlighting = true; enableVteIntegration = true; autocd = true; defaultKeymap = "viins"; initExtra = " [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh la_culr() { ls -ralhX --color $@ | culr } ls_culr() { ls -rlhX --color $@ | culr } ps_culr() { ps ww$@ | culr } alias ...=\"cd ../..\" alias ....=\"cd ../../..\" alias .....=\"cd ../../../..\" alias fresh=\"clear; echo; ~/.nix/header.sh\" alias icat=\"kitty +kitten icat\" alias chmox=\"chmod +x\" alias gs=\"git status\" alias gcl=\"git clone\" alias ga=\"git add\" alias gcb=\"git checkout -b\" alias gco=\"git checkout\" alias gl=\"git pull\" alias gp=\"git push\" alias gd=\"git diff\" alias gcam=\"git commit -am\" alias gcm=\"git commit -m\" alias gr=\"git restore\" alias gm=\"git merge\" alias l=\"ls_culr\" alias la=\"la_culr\" alias p=\"ps_culr\" alias mnt=\"mount | column -t | culr\" alias kaboom=\"printf 'type any input if you wish to update\n\npress enter to continue\n'; read upgrade; if [ -n \\\"\\\$upgrade\\\" ]; then echo upgrading..; sudo nix-channel --update; else echo no upgrade!; fi; sudo nixos-rebuild switch -j9 && rm ~/.gtkrc-2.0; home-manager switch && sudo nix-collect-garbage && nix-store --optimise\" fresh "; plugins = [ { name = "powerlevel10k"; src = pkgs.zsh-powerlevel10k; file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; } { name = "zsh-vi-mode"; src = pkgs.zsh-vi-mode; file = "share/zsh-vi-mode/zsh-vi-mode.zsh"; } { name = "zsh-autopair"; src = pkgs.zsh-autopair; file = "share/zsh-autopair/zsh-autopair.zsh"; } { name = "zsh-completions"; src = pkgs.zsh-completions; file = "share/zsh-completions/zsh-completions.zsh"; } { name = "zsh-command-time"; src = pkgs.zsh-command-time; file = "share/zsh-completions/zsh-command-time.zsh"; } # { # name = "zsh-you-should-use"; # src = pkgs.zsh-you-should-use; # # file = "share/zsh-completions/zsh-you-should-use.zsh"; # } { name = "zsh-autocomplete"; src = pkgs.zsh-autocomplete; file = "share/zsh-autocomplete/zsh-autocomplete.zsh"; } { name = "zsh-fast-syntax-highlighting"; src = pkgs.zsh-fast-syntax-highlighting; file = "share/zsh-fast-syntax-highlighting/zsh-fast-syntax-highlighting.zsh"; } { name = "zsh-nix-shell"; src = pkgs.zsh-nix-shell; file = "share/zsh-nix-shell/zsh-nix-shell.zsh"; } { name = "any-nix-shell"; src = pkgs.any-nix-shell; file = "share/any-nix-shell/any-nix-shell.zsh"; } { name = "nix-zsh-completions"; src = pkgs.nix-zsh-completions; file = "share/nix-zsh-completions/nix-zsh-completions.zsh"; } # { # name = "zsh-fzf-tab"; # src = pkgs.zsh-fzf-tab; # # file = "share/zsh-fzf-tab/zsh-fzf-tab.zsh"; # } ]; }; xresources.extraConfig = " ! special *.foreground: #d3dae3 *.background: #181b28 *.cursorColor: #d3dae3 ! black *.color0: #2f343f *.color8: #1e2233 ! red *.color1: #ed244e *.color9: #da4453 ! green *.color2: #27ae60 *.color10: #71f79f ! yellow *.color3: #f67400 *.color11: #fdbc4b ! blue *.color4: #2980b9 *.color12: #1d99f3 ! magenta *.color5: #c50ed2 *.color13: #9b59b6 ! cyan *.color6: #3daee9 *.color14: #5294e2 ! white *.color7: #a1a9b1 *.color15: #656a73"; programs.helix.enable = true; programs.helix.settings = { theme = "bogster"; }; # home.sessionVariables = { # GTK_THEME = "simplewaita"; # }; home.stateVersion = "22.11"; programs.home-manager.enable = true; }