diff --git a/flake.lock b/flake.lock index 3b781b3..c0333ff 100644 --- a/flake.lock +++ b/flake.lock @@ -578,17 +578,17 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1743583204, - "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", + "lastModified": 1743827369, + "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434", + "rev": "42a1c966be226125b48c384171c44c651c236c22", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", "repo": "nixpkgs", + "rev": "42a1c966be226125b48c384171c44c651c236c22", "type": "github" } }, diff --git a/nixosConfigurations/astora/default.nix b/nixosConfigurations/astora/default.nix index 8192f4d..e10023c 100644 --- a/nixosConfigurations/astora/default.nix +++ b/nixosConfigurations/astora/default.nix @@ -53,6 +53,11 @@ wayland.enable = true; }; + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; + services.dbus = { enable = true; packages = with pkgs; [networkmanager]; diff --git a/nixosConfigurations/astora/users.nix b/nixosConfigurations/astora/users.nix index abc4b72..78f6dd0 100644 --- a/nixosConfigurations/astora/users.nix +++ b/nixosConfigurations/astora/users.nix @@ -38,7 +38,7 @@ in { inherit hmConfig; inherit inputs; }) - inputs.catppuccin.homeManagerModules.catppuccin + inputs.catppuccin.homeModules.catppuccin inputs.ags.homeManagerModules.default #bonLib.preconfiguredModules.homeManager.hyprland ../common/hm/helix.nix @@ -60,7 +60,7 @@ in { carla qpwgraph wireplumber - yabridge + # yabridge yabridgectl lutris @@ -139,11 +139,14 @@ in { ripgrep repgrep delta + + wl-gammarelay-rs ]; xdg.portal = { enable = true; configPackages = with pkgs; [ + xdg-desktop-portal-hyprland kdePackages.xdg-desktop-portal-kde ]; extraPortals = with pkgs; [ @@ -151,6 +154,303 @@ in { ]; }; + services.dunst = { + enable = true; + settings = { + global = { + frame_color = "#d5c4a1"; + separator_color = "#d5c4a1"; + }; + + base16_low = { + msg_urgency = "low"; + background = "#3c3836"; + foreground = "#665c54"; + }; + + base16_normal = { + msg_urgency = "normal"; + background = "#504945"; + foreground = "#d5c4a1"; + }; + + base16_critical = { + msg_urgency = "critical"; + background = "#fb4934"; + foreground = "#ebdbb2"; + }; + }; + }; + + 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 = 4; + } + ]; + + input-field = [ + { + size = "200, 50"; + 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 = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on"; + ignore_dbus_inhibit = false; + }; + listener = [ + { + timeout = 300; + on-timeout = "${pkgs.hyprland}/bin/hyprctl dispatch dpms off"; + on-resume = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on"; + } + ]; + }; + }; + + wayland.windowManager.hyprland = { + enable = true; + settings = { + # Devices (use `hyprctl devices`) + "$monitor1" = "AOC Q27G2G3R3B 137P4HA000540"; + "$monitor2" = "AOC Q27B3MA 17ZPAHA006135"; + "$keyboard" = "keychron-keychron-k3-pro"; + "$mouse" = "keychron--keychron-link-"; + + # Main programs + "$terminal" = "${lib.getExe hmConfig.programs.wezterm.package}"; + "$menu" = "${lib.getExe hmConfig.programs.rofi.package} -show drun"; + "$fileManager" = "$terminal -e ${lib.getExe hmConfig.programs.yazi.package}"; + + monitor = [ + "desc:$monitor1, 2560x1440@165.0, 2560x0, auto" + "desc:$monitor2, 2560x1440@74.97, 0x0, auto" + ]; + + exec-once = [ + # "nm-applet --indicator &" + # "blueman-applet &" + "wl-gammarelay-rs run &" + "systemctl --user start hypridle" + "wl-paste --type text --watch cliphist store" #Stores only text data + "wl-paste --type image --watch cliphist store" #Stores only image data + # "swww-daemon & swww img ~/Pictures/wallpapers/current" # wallpaper symlinked + ]; + + env = [ + "XCURSOR_SIZE,14" + "HYPRCURSOR_SIZE,14" + "WLR_DRM_NO_ATOMIC,1" + "HYPRSHOT_DIR,${hmConfig.xdg.userDirs.pictures}/screenshots" + ]; + + general = { + gaps_in = 2; + gaps_out = 0; + + border_size = 1; + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + "col.active_border" = "rgba(fabd2fbb) rgba(d79921bb) 45deg"; + "col.inactive_border" = "rgba(595959aa)"; + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = true; + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = true; + + layout = "dwindle"; + }; + decoration = { + rounding = 2; + + # Change transparency of focused and unfocused windows + active_opacity = 1.0; + inactive_opacity = 0.95; + + shadow = { + enabled = true; + range = 4; + render_power = 3; + color = "rgba(1a1a1aee)"; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur = { + enabled = true; + size = 3; + passes = 1; + + vibrancy = 0.1696; + }; + }; + animations = { + enabled = true; + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; + + animation = [ + "windows, 1, 7, myBezier" + "windowsOut, 1, 7, default, popin 80%" + "border, 1, 10, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 6, default" + ]; + }; + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + dwindle = { + pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true; # You probably want this + }; + + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + master = { + new_status = "master"; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#misc + misc = { + force_default_wallpaper = -1; # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false; # Enable the random hyprland logo / anime girl background. :) + }; + input = { + kb_layout = "us,ru"; + + follow_mouse = 0; + + sensitivity = 0; # -1.0 - 1.0, 0 means no modification. + + touchpad = { + natural_scroll = false; + }; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#gestures + gestures = { + workspace_swipe = false; + }; + + windowrulev2 = [ + "suppressevent maximize, class:.*" # You'll probably like this. + "float, class:^(steam_app.*)$" + "immediate, class:^(steam_app.*)$" + "float, class:^(steam_proton.*)$" + "float,class:^(org.wezfurlong.wezterm)$" + "tile,class:^(org.wezfurlong.wezterm)$" + ]; + bind = [ + "SUPER, Q, exec, $terminal" + "SUPER, N, exec, $fileManager" + "SUPER, R, exec, $menu" + # "SUPER, X, exec, ags -t clock" + # "SUPER, X, exec, ags -t control" + # "SUPER, X, exec, ags -t systray" + # "SUPER, X, exec, ags -t workspaces" + # "SUPER, X, exec, ags -t window-title" + + "SUPER, L, exec, hyprlock --immediate" + + # Windows + "SUPER, C, killactive," + "SUPER, M, exit," + "SUPER, V, togglefloating," + "SUPER, F, fullscreen," + "SUPER, J, togglesplit," # dwindle + + # Move focus with mainMod + arrow keys + "SUPER, left, movefocus, l" + "SUPER, right, movefocus, r" + "SUPER, up, movefocus, u" + "SUPER, down, movefocus, d" + + # Switch workspaces with mainMod + [0-9] + "SUPER, 1, workspace, 1" + "SUPER, 2, workspace, 2" + "SUPER, 3, workspace, 3" + "SUPER, 4, workspace, 4" + "SUPER, 5, workspace, 5" + "SUPER, 6, workspace, 6" + "SUPER, 7, workspace, 7" + "SUPER, 8, workspace, 8" + "SUPER, 9, workspace, 9" + "SUPER, 0, workspace, 10" + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + "SUPER SHIFT, 1, movetoworkspace, 1" + "SUPER SHIFT, 2, movetoworkspace, 2" + "SUPER SHIFT, 3, movetoworkspace, 3" + "SUPER SHIFT, 4, movetoworkspace, 4" + "SUPER SHIFT, 5, movetoworkspace, 5" + "SUPER SHIFT, 6, movetoworkspace, 6" + "SUPER SHIFT, 7, movetoworkspace, 7" + "SUPER SHIFT, 8, movetoworkspace, 8" + "SUPER SHIFT, 9, movetoworkspace, 9" + "SUPER SHIFT, 0, movetoworkspace, 10" + + # special workspace (scratchpad) + "SUPER, S, togglespecialworkspace, magic" + "SUPER SHIFT, S, movetoworkspace, special:magic" + + "SUPER, SPACE, exec, hyprctl switchxkblayout keychron-keychron-k3-pro next" + ", PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot --freeze --mode region" + "CTRL, PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot --freeze --mode output" + "CTRL SHIFT, PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot --freeze --mode region --raw | ${pkgs.satty}/bin/satty --filename - --initial-tool brush --copy-command ${pkgs.wl-clipboard}/bin/wl-copy" + "SUPER, H, exec, ${pkgs.cliphist}/bin/cliphist list | ${pkgs.rofi}/bin/rofi -dmenu | ${pkgs.cliphist}/bin/cliphist decode | ${pkgs.wl-clipboard}/bin/wl-copy" + ]; + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = [ + "SUPER, mouse:272, movewindow" + "SUPER, mouse:273, resizewindow" + ]; + + bindel = [ + ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" + ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ]; + bindl = [ + ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous" + ", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause" + ", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next" + # ", XF86MonBrightnessDown, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -500" + # ", XF86MonBrightnessUp, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n +500" + ", XF86MonBrightnessDown, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d -0.1" + ", XF86MonBrightnessUp, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d +0.1" + ]; + }; + }; + # Theme catppuccin = { # global, for all enabled programs diff --git a/packages/bonfire-docs/src/notes.md b/packages/bonfire-docs/src/notes.md index e35adc3..aacecad 100644 --- a/packages/bonfire-docs/src/notes.md +++ b/packages/bonfire-docs/src/notes.md @@ -40,3 +40,15 @@ nix-store --verify --check-contents --repair ```sh nix flake prefetch --json github:OpenFOAM/OpenFOAM-11/20240704 ``` + +## GNUPG + +```sh +systemctl stop --user gpg-agent.service +systemctl stop --user gpg-agent.socket +``` + +```sh +gpgconf --kill gpg-agent +gpg-agent --homedir $"($env.HOME)/.config/gnupg" --daemon --pinentry-program /nix/store/99907s87fl7qqjhsa03gwdr9w8ddg3zg-pinentry-curses-1.3.1/bin/pinentry +```