{ config, pkgs, lib, inputs, ... }: { home.username = "blue"; home.homeDirectory = "/home/blue"; imports = [ inputs.anyrun.homeManagerModules.default ]; # States home manager version that config was originally compatible with, do not change without reading all patch notes since this version and altering as needed home.stateVersion = "24.05"; # General use home packages that dont require a separate module home.packages = [ # Add grimblast screenshot tool pkgs.grimblast ]; home.sessionVariables = { EDITOR = "nano"; DEFAULT_BROWSER = "${lib.getExe pkgs.firefox}" }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; programs.tmux.enable = true; # Enable Hyprland compositor wayland.windowManager.hyprland = { enable = true; package = pkgs.hyprland; xwayland.enable = true; # Autostart using systemd systemd.enable = true; extraConfig = '' exec-once = waybar # Monitor settings monitor = eDP-2, 2560x1600@165, 0x0, auto # main laptop monitor monitor = DP-3, 1920x1080@119.98, -1280x-1080, auto # left external monitor monitor = DP-2, 1920x1080@119.98, 640x-1080, auto # right external monitor debug:disable_logs = false # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mod, mouse:272, movewindow bindm = $mod, mouse:273, resizewindow xwayland { force_zero_scaling = true } env = GDK_SCALE,1 env = XCUERSOR_SIZE,32 ''; }; # Hyprland configuration wayland.windowManager.hyprland.settings = { "$mod" = "SUPER"; input = { kb_layout = "gb"; }; bind = [ # Keybinds for starting programs "$mod, F, exec, firefox" "$mod, 1, exec, alacritty" "$mod, D, exec, vesktop" "$mod, space, exec, anyrun" # Screenshot tool ", Print, exec, grimblast copy area" # Screen locking tool "$mod, l, exec, hyprlock" # Window management "$mod, x, killactive" "$mod, tab, togglefloating" ] ++ ( # workspaces # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} builtins.concatLists (builtins.genList ( x: let ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10)); in [ "$mod, ${ws}, workspace, ${toString (x + 1)}" "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}" ] ) 10) ); }; programs.waybar = { enable = true; systemd.enable = false; settings = { mainBar = { layer = "top"; position = "top"; height = 30; output = [ "eDP-2" "DP-2" "DP-3" ]; modules-left = [ "wlr/workspaces" "wlr/mode" "wlr/taskbar" ]; modules-center = [ "wlr/window" "clock" ]; modules-right = [ "idle_inhibitor" "pulseaudio" "backlight" "battery" "tray" ]; "clock" = { "format" = "{:%A %d %b %T}"; # "tooltip" = true; # "tooltip-format" = "{=%A; %d %B %Y}\n{calendar}"; "interval" = 1; }; }; }; }; # Add support for bluetooth headset media controls services.mpris-proxy.enable = true; programs.alacritty = { enable = true; package = pkgs.alacritty; settings = { window.dimensions = { lines = 3; columns = 200; }; # keyboard.bindings = [ # { # key = "K"; # mods = "Control"; # chars = "\\u000c"; # } # ]; }; }; # programs.hyprpaper = { # enable = true; # settings = { # ipc = "on"; # splash = false; # splash_offset = 2.0; # preload = [ "~/Pictures/wallpaper.png" ]; # wallpaper = [ # ",~/Pictures/wallpaper.png" # ]; # }; # }; programs.hyprlock = { enable = true; settings = { general = { disable_loading_bar = true; grace = 0; hide_cursor = true; no_fade_in = false; }; background = [ { path = "screenshot"; blur_passes = 3; blur_size = 8; } ]; input-field = [ { size = "200, 50"; position = "0, -80"; monitor = "eDP-2"; 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; } ]; }; }; programs.anyrun = { enable = true; config = { plugins = [ # An array of all the plugins you want, which either can be paths to the .so files, or their packages inputs.anyrun.packages.${pkgs.system}.applications inputs.anyrun.packages.${pkgs.system}.rink # ./some_plugin.so # "${inputs.anyrun.packages.${pkgs.system}.anyrun-with-all-plugins}/lib/kidex" ]; x = { fraction = 0.5; }; y = { fraction = 0.3; }; width = { fraction = 0.3; }; hideIcons = false; ignoreExclusiveZones = false; layer = "overlay"; hidePluginInfo = false; closeOnClick = true; showResultsImmediately = false; maxEntries = null; }; extraCss = '' #window { background: transparent; } #main { background-color: grey; text-color: white; outline-color: black; } ''; # extraConfigFiles."some-plugin.ron".text = '' # Config( # // for any other plugin # // this file will be put in ~/.config/anyrun/some-plugin.ron # // refer to docs of xdg.configFile for available options # ) # ''; }; services.blueman-applet.enable = true; programs.htop.enable = true; }