{ inputs, outputs, lib, config, pkgs, ... }: let wlogout_style_base = dots/wlogout/style.css; wlogout_style = pkgs.runCommandLocal "wlogout_style_base" {wlogpath = lib.strings.escape ["/"] "${pkgs.wlogout}";} '' cp ${wlogout_style_base} $out sed -i "s/\/usr\/share\/wlogout/$wlogpath\/share\/wlogout/g" $out sed -i "s/\/etc\/wlogout/$wlogpath\/etc\/wlogout/g" $out ''; in { imports = [ inputs.hyprland.homeManagerModules.default ./programs/eww/default.nix ]; nixpkgs = { overlays = [ outputs.overlays.additions outputs.overlays.unstable-pkgs ]; config = { allowUnfree = true; allowUnfreePredicate = (_: true); }; }; home.stateVersion = "22.11"; home.packages = with pkgs; [ thunderbird clementine inkscape btop bat joshuto ripgrep fd lazygit fzf zoxide zellij glib # for gsettings grim slurp swaybg wlogout wf-recorder libnotify xorg.xrdb swayidle swaynotificationcenter waylock playerctl culr swayosd fuzzel kdeconnect syncthing keepassxc git-credential-keepassxc direnv mpv meslo-lgs-nf libsForQt5.qtstyleplugin-kvantum gtk-engine-murrine ]; services.syncthing = { enable = true; }; wayland.windowManager.hyprland = { enable = true; systemdIntegration = true; nvidiaPatches = true; xwayland = { enable = true; hidpi = false; }; recommendedEnvironment = true; extraConfig = builtins.readFile dots/hyprland/hyprland.conf; }; programs.eww-hyprland = { enable = true; colors = builtins.readFile dots/eww/colors.scss; }; systemd.user.startServices = "sd-switch"; systemd.user.services."hyprland-system76" = { Unit = { Description = "the hyprland process scheduler hook"; Requires = [ "dbus.service" ]; }; Install = { WantedBy = [ "graphical-session.target" "default.target" ]; }; Service = { ExecStart = ''${pkgs.hyprland-system76-scheduler-integration}/bin/hyprland-system76-scheduler-hook.sh''; }; }; xresources.extraConfig = builtins.readFile ./dots/Xresources; xdg.enable = true; xdg.configFile = builtins.mapAttrs (name: value: { enable=true; text=builtins.readFile value; }) { "wlogout/layout" = dots/wlogout/layout; "wlogout/style.css" = wlogout_style; "swaync/config.json" = dots/swaync/config.json; "swaync/configSchema.json" = dots/swaync/configSchema.json; "swaync/style.css" = dots/swaync/style.css; "fuzzel/fuzzel.ini" = dots/fuzzel/fuzzel.ini; }; xdg.systemDirs.data = [ "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}" "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}" ]; home.sessionVariables = { GTK_THEME = "Sweet-Dark"; }; gtk = { enable = true; theme = { package = pkgs.sweet; name = "Sweet-Dark"; }; iconTheme = { package = pkgs.papirus-icon-theme; name = "Papirus-Dark"; }; }; programs.direnv = { enable = true; nix-direnv = { enable = true; }; }; programs.firefox = { enable = true; profiles.default = { id = 0; name = "Default"; settings = { "browser.startup.homepage" = "about:blank"; }; extensions = with config.nur.repos.rycee.firefox-addons; [ vimium-c darkreader localcdn ublock-origin keepassxc-browser user-agent-string-switcher ]; }; }; programs.helix = { enable = true; # package = inputs.helix.packages.${pkgs.hostPlatform.system}.default; settings = { theme = "gruvbox_dark_hard"; editor.lsp.display-messages = true; }; }; programs.kitty = { enable = true; 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.fzf = { enable = true; enableZshIntegration = true; }; programs.zsh = { enable = true; enableAutosuggestions = true; enableCompletion = true; enableSyntaxHighlighting = true; enableVteIntegration = true; autocd = true; defaultKeymap = "viins"; initExtra = builtins.readFile ./dots/zsh; 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-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"; } ]; }; }