{ inputs, config, pkgs, ... }: { home.username = "alecake"; home.homeDirectory = "/home/alecake"; nixpkgs.config.allowUnfree = true; imports = [ ./programs/emacs/emacs.nix ]; nixpkgs.overlays = [ (import inputs.emacs-overlay) (final: prev:{emacs-unstable-pgtk = prev.emacs-unstable.override { withGTK3 = true; withTreeSitter = true; withNativeCompilation = true;};}) ]; nixpkgs.config.permittedInsecurePackages = [ "imagemagick-6.9.12-68" ]; # Lets home-manager manage xdg stuff uwu xdg = { enable = true; userDirs.enable = true; }; home.sessionVariables = { EDITOR = "emacs --no-window-system"; NODE_REPL_HISTORY = ""; }; home.shellAliases = { ls = "eza --icons --hyperlink -w=60"; }; home.packages = [ pkgs.btop pkgs.hyfetch pkgs.distrobox pkgs.neovim pkgs.fzf pkgs.eza pkgs.scrcpy pkgs.emacs-unstable-pgtk pkgs.multimarkdown pkgs.pandoc pkgs.unzip pkgs.zip #pkgs.ulauncher #pkgs.swww #inputs.eww.packages.x86_64-linux.eww-wayland pkgs.xdg_utils #inputs.hyprland-contrib.packages.x86_64-linux.grimblast pkgs.appimage-run pkgs.swaynotificationcenter pkgs.gnome.adwaita-icon-theme #pkgs.libsForQt5.qtstyleplugin-kvantum pkgs.jetbrains.idea-community pkgs.gnome.nautilus pkgs.nextcloud-client pkgs.yubikey-personalization-gui ]; programs.fish = { # feeeeesh configs uwu enable = true; package = pkgs.fish; interactiveShellInit = " set fish_greeting ${pkgs.starship}/bin/starship init fish | source "; plugins = [ {name = "fzf-fish"; src = pkgs.fishPlugins.fzf-fish;} ]; }; programs.starship = { enable = true; enableNushellIntegration = true; settings = { character.success_symbol = "[➜](bold green)"; directory.read_only = " 🥺"; format = "$directory$git_branch \n$character"; }; }; programs.direnv = { enable = true; nix-direnv.enable = true; }; wayland.windowManager.sway = { enable = true; package = pkgs.sway; config = { terminal = "alacritty"; window.border = 1; colors.focused = { background = "#282828"; text = "#d3869b"; childBorder = "#d3869b"; indicator = "b16286"; border = "#d3869b"; }; gaps = { inner = 10; }; bars = []; startup = [ { command = "eww daemon";} { command = "eww open bar"; } { command = "swww init";} { command = "swww img --transition-type wipe Pictures/wallpapers/night/BNAWall-10240x5760-upscaled.png";} ]; window.titlebar = false; keybindings = { "Ctrl+Alt+1" = "workspace 1"; "Ctrl+Alt+2" = "workspace 2"; "Ctrl+Alt+3" = "workspace 3"; "Ctrl+Alt+4" = "workspace 4"; "Ctrl+Alt+5" = "workspace 5"; "Ctrl+Alt+6" = "workspace 6"; "Ctrl+Alt+7" = "workspace 7"; "Ctrl+Alt+Shift+1" = "move container to workspace 1"; "Ctrl+Alt+Shift+2" = "move container to workspace 2"; "Ctrl+Alt+Shift+3" = "move container to workspace 3"; "Ctrl+Alt+Shift+4" = "move container to workspace 4"; "mod4+f" = "fullscreen"; "Ctrl+Alt+f" = "floating toggle"; "Ctrl+Alt+mod4+w" = "kill"; "Ctrl+Alt+Shift+c" = "reload"; "mod4+Return" = "exec alacritty"; "mod1+Space" = "exec ulauncher toggle"; }; input = { "*" = { xkb_layout = "it"; "natural_scroll" = "enabled"; }; }; }; }; wayland.windowManager.hyprland = { enable = false; enableNvidiaPatches = true; xwayland.enable = true; package = inputs.hyprland.packages.x86_64-linux.hyprland; extraConfig ='' env = WLR_NO_HARDWARE_CURSORS,1 env = XDG_SESSION_TYPE,wayland env = LIBVA_DRIVER_NAME,nvidia env = GBM_BACKEND,nvidia-drm env = __GLX_VENDOR_LIBRARY_NAME,nvidia env = NIXOS_OZONE_WL,1 env = XDG_CURRENT_DESKTOP,hyprland exec-once = eww open bar exec-once = ulauncher exec-once = swaync exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = swww init monitor=HDMI-A-2, 1920x1080@75, 1920x0, 1 monitor=HDMI-A-1, 1920x1080@75, 0x0, 1 workspace = 1, monitor:HDMI-A-2 workspace = 2, monitor:HDMI-A-2 workspace = 3, monitor:HDMI-A-2 workspace = 4, monitor:HDMI-A-2 workspace = 5, monitor:HDMI-A-2 workspace = 6, monitor:HDMI-A-2 workspace = 7, monitor:HDMI-A-2 workspace = 8, monitor:HDMI-A-2 workspace = 9, monitor:HDMI-A-1, default:true # telegram media viewer windowrulev2 = float, title:^(Media viewer)$ # make Firefox PiP window floating and sticky windowrulev2 = float, title:^(Picture-in-Picture)$ windowrulev2 = pin, title:^(Picture-in-Picture)$ # throw sharing indicators away windowrulev2 = workspace special silent, title:^(Firefox — Sharing Indicator)$ windowrulev2 = workspace special silent, title:^(.*is sharing (your screen|a window)\.)$ windowrulev2 = noblur, title:^(Ulauncher - Application Launcher)$ windowrulev2 = noborder, title:^(Ulauncher - Application Launcher)$ windowrulev2 = noanim, title:^(Ulauncher - Application Launcher)$ windowrulev2 = noshadow, title:^(Ulauncher - Application Launcher)$ windowrulev2 = stayfocused, title:^(Ulauncher - Application Launcher)$ bindm = SUPER, mouse:272, movewindow bindm = SUPER, mouse:273, resizewindow bindm = SUPER, mouse:274, movewindow general { col.active_border=rgb(ff79c6) } ''; settings = { input = { kb_layout = "it"; left_handed = true; }; bind = [ "SUPER, RETURN, exec, alacritty" "CTRL_ALT, 1, workspace, 1" "CTRL_ALT, 2, workspace, 2" "CTRL_ALT, 3, workspace, 3" "CTRL_ALT, 4, workspace, 4" "CTRL_ALT, 5, workspace, 5" "CTRL_ALT, 6, workspace, 6" "CTRL_ALT, 7, workspace, 7" "CTRL_ALT, 8, workspace, 8" "CTRL_ALT, 9, workspace, 9" "CTRL_ALT_SHIFT, 1, movetoworkspace, 1" "CTRL_ALT_SHIFT, 2, movetoworkspace, 2" "CTRL_ALT_SHIFT, 3, movetoworkspace, 3" "CTRL_ALT_SHIFT, 4, movetoworkspace, 4" "CTRL_ALT_SHIFT, 5, movetoworkspace, 5" "CTRL_ALT_SHIFT, 6, movetoworkspace, 6" "CTRL_ALT_SHIFT, 7, movetoworkspace, 7" "CTRL_ALT:SHIFT, 8, movetoworkspace, 8" "CTRL_ALT_SHIFT, 9, movetoworkspace, 9" "SUPER,left,movewindow,l" "SUPER,right,movewindow,r" "SUPER,up,movewindow,u" "SUPER,up,movewindow,d" "Shift, Print, exec, grim" ", Print, exec, grimblast copysave area" "CTRL_ALT, W, killactive" "CTRL_ALT, F, togglefloating" "ALT, Tab, cyclenext" "ALT,SPACE, exec, ulauncher-toggle" ]; }; }; programs.waybar = { enable = false; package = pkgs.waybar; settings = { bar = { layer = "top"; position = "top"; output = "HDMI-A-2"; height = 24; modules-left = ["wlr/workspaces"]; modules-center = ["hyprland/window"]; modules-right = [ "tray" "custom/notification" "pulseaudio" "clock" ]; pulseaudio = { format = "v: {volume}%"; }; battery = { format = "b: {capacity}%"; }; "custom/notification" = { tooltip = false; format = "{icon}"; format-icons = { notification = "notif"; none = "no-notif"; dnd-notification = "notif"; dnd-none = "no-notif"; }; return-type = "json"; exec-if = "which swaync-client"; exec = "swaync-client -swb"; on-click = "swaync-client -t -sw"; escape = true; }; }; }; style = " * { font-family: jetbrains mono; background-color: #282a36; color: #f8f8f2; } #workspaces button, #workspaces button:hover { border: none; border-radius : unset; background: unset; } #workspaces button.focused { color: #6272a4; } #pulseaudio { padding-left: 10px; padding-right: 10px; background-color: #44475a; } #clock { padding-left: 10px; padding-right: 10px; background-color: #3b3e54; } #tray, #tray > .passive, #tray > .needs-attention { padding-left: 10px; padding-right: 10px; } #custom-notification { padding-left: 10px; padding-right: 10px; background: #545769; } "; }; programs.alacritty = { enable = true; package = pkgs.alacritty; settings = { window.padding.x = 0; window.padding.y = 0; colors.primary = { background = "#282a36"; foreground = "#f8f8f2"; bright_foreground = "#ffffff"; }; colors.cursor = { text = "CellBackground"; cursor = "CellForeground"; }; colors.selection = { text = "CellForeground"; background = "#44475a"; }; colors.normal = { black = "#21222c"; red = "#ff5555"; green = "#f1fa8c"; blue = "#bd93f9"; magenta = "#ff79c6"; cyan = "#8be9fd"; white = "#f8f8f2"; }; }; }; programs.swaylock = { enable = false; package = pkgs.swaylock-effects; settings = { effect-blur = "20x2"; clock = true; indicator = true; font-size = 25; indicator-radius = 85; indicator-thickness = 16; screenshots = true; ring-color = "bd93f9"; key-hl-color = "ff79c6"; }; }; services.mako = { enable = false; package = pkgs.mako; backgroundColor = "#282a36"; borderColor = "#ff79c6"; font = "jetbrains-mono 10"; }; # the trans is real programs.hyfetch = { enable = true; settings = { preset = "transgender"; mode = "rgb"; color_align = { mode = "horizontal"; }; }; }; programs.vscode = { enable = true; package = pkgs.vscode; }; programs.git = { enable = true; package = pkgs.git; userName = "Ale"; userEmail = "alecake@ale.pet"; signing = { key = "1E390257057001A9AB814492284AFB134BB2E07D"; signByDefault = true; }; }; programs.helix = { enable = true; package = pkgs.helix; settings.theme = "dracula"; settings.editor.bufferline = "multiple"; }; gtk = { enable = false; theme = { name = "adw-gtk3-dark"; package = pkgs.adw-gtk3; }; iconTheme = { name = "Papirus"; package = pkgs.papirus-icon-theme; }; }; home.pointerCursor = { gtk.enable = true; x11.enable = true; size = 24; package = pkgs.hackneyed; name = "Hackneyed"; }; home.file."/home/alecake/.config/swaync/config.json".text = " { \"positionX\": \"right\", \"positionY\": \"top\", \"layer\": \"overlay\", \"control-center-layer\": \"top\", \"layer-shell\": \"true\", \"cssPriority\": \"user\", \"notification-window-width\": 300, \"widgets\": [ \"notifications\", \"dnd\", \"mpris\" ], \"notification-visibily\": { \"telegram-desktop\": { \"_comment\": \"Show telegram-desktop messages\", \"override-urgency\": \"normal\", \"desktop-entry\": \"org.telegram.desktop\" } } } "; home.file."/home/alecake/.config/swaync/style.css".text = " .notification-default-action, .notification-action { background-color: #282a36; font-family: jetbrains mono; border-radius: unset; border-width: 1px; border-color: #ff79c6; border-style: solid; } .notification-action { margin-top: 5px; } .control-center{ background-color: #44475a; } .notification { box-shadow : unset; } .notification-row:focus { background: unset; } .widget-mpris, .widget-dnd { background-color: #282a36; margin: 0; font-family: jetbrains mono; } .widget-dnd { padding: 8px; padding-left: 16px; padding-right: 16px; } .widget-dnd > switch { border-radius: unset; background: unset; background: #44475a; padding: 2px; } .widget-dnd > switch slider { border-radius: unset; background: #bd93f9; } .widget-dnd > switch:checked slider { background: #ff79c6; } "; home.stateVersion = "23.05"; }