From ffd09e5046847c3ceea52ceaba9b307c71649f65 Mon Sep 17 00:00:00 2001 From: Szymon P Date: Sun, 22 Feb 2026 20:02:46 +0100 Subject: [PATCH] super duper changes :D --- README.md | 62 +++- arch_packages.txt | 9 + home.nix | 8 +- install_nix_and_home_manager_on_arch.sh | 10 + modules/hypr/hypridle.nix | 33 ++ modules/hypr/hyprland.nix | 418 ++++++++++++++++++++++++ modules/hypr/hyprlauncher.nix | 22 ++ modules/hypr/hyprlock.nix | 88 +++++ modules/hypr/hyprsunset.nix | 33 ++ modules/nixvim.nix | 1 + 10 files changed, 665 insertions(+), 19 deletions(-) create mode 100644 arch_packages.txt create mode 100644 install_nix_and_home_manager_on_arch.sh create mode 100644 modules/hypr/hypridle.nix create mode 100644 modules/hypr/hyprland.nix create mode 100644 modules/hypr/hyprlauncher.nix create mode 100644 modules/hypr/hyprlock.nix create mode 100644 modules/hypr/hyprsunset.nix diff --git a/README.md b/README.md index 9ebd719..a9c9168 100644 --- a/README.md +++ b/README.md @@ -4,35 +4,61 @@ My dotfiles managed with [home manager](https://github.com/nix-community/home-manager) # What's inside? -- Fish config -- Kitty config -- Hypr* stuff config -- Mako config -- ashell, waybar config -- nvim config +### Configured with native nix +* Ashell +* Atuin +* Bat +* Btop +* Fish +* Git +* Hypridle +* Hyprland +* Hyprlauncher +* Hyprlock +* Hyprsunset +* Kitty +* Mako +* Nixvim +* Satty +* SSH +* Waybar +* Yazi +* Zoxide +* Fastfetch +* GTK 3.0 +* GTK 4.0 +* MangoHud +* Mimeapps +* Catppuccin +* Home Manager ## Screenshot ![Desktop screenshot](assets/screenshot.png) ![Terminal screenshot](assets/terminal.png) -# Some history +# Some history about my dotfiles My first ever [dotfiles](https://github.com/szymon-jozef/dotfiles) repo was just named… Dotfiles. It was pretty bare bones. Then I created [superior dotfiles](https://github.com/szymon-jozef/superior_dotfiles). I used it with [chezmoi](https://www.chezmoi.io/). It was pretty good, but then I decided to try something else… As of today I'm using this repo with home manager. I'm still trying stuff out, but it looks pretty good right now. -# How to try this out? -I guess you should [install home manager](https://nix-community.github.io/home-manager/index.xhtml#sec-install-standalone). You can do it on *any* distro, but I only use Arch, so I don't guarantee it will work elsewhere. To try it out just copy this repo to `~/.config/home-manager`, cd there and then run: -**Important**: don't forget to change your user info in `flake.nix` before running this command! -## On NixOS -```bash -home-manager switch --flake .#nixos -b backup -``` -## On Arch -```bash -home-manager switch --flake .#arch -b backup -``` +# How to use this? +You need to have [home manager](https://nix-community.github.io/home-manager/index.xhtml#sec-install-standalone) installed. Install needs to be **standalone**. It may not work as NixOS module. +## Arch Linux +0. If you're extra lazy you can use `install_nix_and_home_manager_on_arch.sh` script to install nix and home-manager. Just run it with `chmod +x ./install_nix_and_home_manager_on_arch.sh && ./install_nix_and_home_manager_on_arch.sh` +1. Copy this repo to `~/.config/home-manager` or somewhere else. +2. Make sure to change variable to your liking inside `flake.nix`. Especially your username and home path! +3. Download all the dependencies `sudo yay -Syu --needed - < arch_packages.txt`. You can use any other aur helper if you want to, but be aware that regular pacman most likely won't work as `ashell` is not in regular repos yet. +4. Run this command to apply all the configurations for the first time `home-manager switch --flake .#arch -b backup`. Make sure to be in the repo root. All your existing files will be backed up with `.backup` extension. +5. Enjoy! Now you can use [nh](https://github.com/nix-community/nh). So for example to switch use `nh home switch . -c arch --backup-extension backup` + +## NixOS +1. Copy this repo to `~/.config/home-manager` or somewhere else. +2. Make sure to change variable to your liking inside `flake.nix`. Especially your username and home path! +3. Run this command to apply all the configurations for the first time `home-manager switch --flake .#nixos -b backup`. Make sure to be in the repo root. All your existing files will be backed up with `.backup` extension. +4. Enjoy! Now you can use [nh](https://github.com/nix-community/nh). So for example to switch use `nh home switch . -c nixos --backup-extension backup` + --- I hope you'll enjoy it, if you for whatever reason want to try this random ass dotfiles found on the internet… diff --git a/arch_packages.txt b/arch_packages.txt new file mode 100644 index 0000000..722c0c8 --- /dev/null +++ b/arch_packages.txt @@ -0,0 +1,9 @@ +ashell +waybar +hyprland +hyprlauncher +hypridle +hyprlock +hyprsunset +satty +kitty diff --git a/home.nix b/home.nix index ca43307..fbe7209 100644 --- a/home.nix +++ b/home.nix @@ -43,6 +43,12 @@ # status bars ./modules/ashell.nix ./modules/waybar.nix + # hypr + ./modules/hypr/hyprland.nix + ./modules/hypr/hyprlauncher.nix + ./modules/hypr/hypridle.nix + ./modules/hypr/hyprlock.nix + ./modules/hypr/hyprsunset.nix ]; # === DOTFILES IMPORT === @@ -52,7 +58,7 @@ # ".config/nvim".source = ./dotfiles/nvim; ".config/gtk-3.0/settings.ini".source = ./dotfiles/gtk-3.0/settings.ini; ".config/gtk-4.0".source = ./dotfiles/gtk-4.0; - ".config/hypr".source = ./dotfiles/hypr; + # ".config/hypr".source = ./dotfiles/hypr; ".config/mimeapps.list".source = ./dotfiles/mimeapps.list; ".local/bin".source = ./scripts; }; diff --git a/install_nix_and_home_manager_on_arch.sh b/install_nix_and_home_manager_on_arch.sh new file mode 100644 index 0000000..8e01b44 --- /dev/null +++ b/install_nix_and_home_manager_on_arch.sh @@ -0,0 +1,10 @@ +#!/bin/env bash + +echo "=== NIX INSTALLATION ===" +sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --daemon + +echo "=== HOME MANAGER INSTALLATION ===" +nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager +nix-channel --update +nix-shell '' -A install + diff --git a/modules/hypr/hypridle.nix b/modules/hypr/hypridle.nix new file mode 100644 index 0000000..0987667 --- /dev/null +++ b/modules/hypr/hypridle.nix @@ -0,0 +1,33 @@ +{ isNixOS, lib, ... }: + +{ + services.hypridle = { + enable = true; + package = lib.mkIf (!isNixOS) null; + + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; + before_sleep_cmd = "hyprlock"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + + listener = [ + { + timeout = 300; # 5 min + on-timeout = "hyprlock"; + } + { + timeout = 330; # 5.5 min + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + { + timeout = 330; # 5.5 min + on-timeout = "openrgb -c black"; + on-resume = "openrgb -c green"; + } + ]; + }; + }; +} diff --git a/modules/hypr/hyprland.nix b/modules/hypr/hyprland.nix new file mode 100644 index 0000000..753c17c --- /dev/null +++ b/modules/hypr/hyprland.nix @@ -0,0 +1,418 @@ +{ isNixOS, lib, ... }: + +{ + wayland.windowManager.hyprland = { + enable = true; + package = lib.mkIf (!isNixOS) null; + + settings = { + "$mainMod" = "SUPER"; + "$terminal" = "uwsm app -- kitty"; + "$menu" = "hyprlauncher"; + "$music_player" = "flatpak run com.spotify.Client"; + "$notes" = "obsidian"; + "$browser" = "zen-browser"; + "$openrgb_color" = "09ce30"; + + env = [ + "XCURSOR_SIZE, 32" + "HYPRCURSOR_SIZE, 32" + "HYPRCURSOR_THEME, theme_phinger-cursors-light" + "XDG_CURRENT_DESKTOP,Hyprland" + ]; + + general = { + gaps_in = 4; + gaps_out = 6; + border_size = 4; + "col.active_border" = "$blue $sky"; + "col.inactive_border" = "$overlay1"; + resize_on_border = false; + allow_tearing = false; + layout = "dwindle"; + }; + + animations = { + enabled = true; + bezier = [ + "easeOutQuint,0.23,1,0.32,1" + "easeInOutCubic,0.65,0.05,0.36,1" + "linear,0,0,1,1" + "almostLinear,0.5,0.5,0.75,1.0" + "quick,0.15,0,0.1,1" + ]; + animation = [ + "global, 1, 7, default" + "border, 1, 3.39, easeOutQuint" + "windows, 1, 2.79, easeOutQuint" + "windowsIn, 1, 2.1, easeOutQuint, popin 87%" + "windowsOut, 1, 1, linear, popin 87%" + "fadeIn, 1, 1.4, almostLinear" + "fadeOut, 1, 1.2, almostLinear" + "fade, 1, 3.03, quick" + "layers, 1, 2, easeOutQuint" + "layersIn, 1, 2, easeOutQuint, fade" + "layersOut, 1, 1, linear, fade" + "fadeLayersIn, 1, 1.4, almostLinear" + "fadeLayersOut, 1, 1.1, almostLinear" + "workspaces, 1, 1.4, quick, slidevert" + "workspacesIn, 1, 0.5, quick, slidevert" + "workspacesOut, 1, 0.5, quick, slidevert" + ]; + }; + + decoration = { + rounding = 1; + rounding_power = 2; + active_opacity = 1.0; + inactive_opacity = 1.0; + shadow = { + enabled = true; + range = 1; + render_power = 1; + color = "$overlay0"; + }; + blur = { + enabled = true; + size = 1; + passes = 1; + vibrancy = 0.1696; + }; + }; + + dwindle = { + pseudotile = true; + preserve_split = true; + }; + + master = { + new_status = "slave"; + allow_small_split = true; + orientation = "left"; + }; + + ecosystem = { + enforce_permissions = true; + }; + + permission = [ + "/usr/bin/grim, screencopy, allow" + "/usr/bin/hyprlock, screencopy, allow" + "/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow" + ]; + + input = { + kb_layout = "pl"; + kb_variant = ""; + kb_model = ""; + kb_options = "caps:escape_shifted_capslock"; + kb_rules = ""; + follow_mouse = 1; + left_handed = true; + sensitivity = 0; + touchpad = { + natural_scroll = true; + }; + }; + + cursor = { + no_hardware_cursors = true; + inactive_timeout = 5; + warp_on_change_workspace = 1; + zoom_factor = 1.0; + hide_on_key_press = 1; + }; + + misc = { + force_default_wallpaper = 0; + disable_hyprland_logo = true; + middle_click_paste = false; + }; + + xwayland = { + force_zero_scaling = 1; + }; + + quirks = { + prefer_hdr = 1; + }; + + "exec-once" = [ + "wl-paste --type text --watch cliphist store" + "wl-paste --type image --watch cliphist store" + "uwsm app -- kdeconnect-indicator" + "uwsm app -- ashell" + "swww-daemon" + "openrgb -c $openrgb_color" + ]; + + workspace = [ + "1, monitor:DP-2" + "2, monitor:DP-1" + "3, monitor:DP-1" + "4, monitor:DP-1" + "5, monitor:DP-1" + "6, monitor:DP-1" + "7, monitor:HDMI-A-2" + "9, monitor:DP-2" + "10, monitor:DP-2" + "w[tv1], gapsout:0, gapsin:0" + "f[1], gapsout:0, gapsin:0" + ]; + + windowrule = [ + # smart gaps + "border_size 0, match:float 0, match:workspace w[tv1]" + "rounding 0, match:float 0, match:workspace w[tv1]" + "border_size 0, match:float 0, match:workspace f[1]" + "rounding 0, match:float 0, match:workspace f[1]" + # general rules + "match:class ^(signal)$, workspace 1" + "match:class ^(vesktop)$, workspace 1 silent" + "match:class ^(chrome-facebook.com__-Default)$, workspace 1" + "match:class ^(zen)$, workspace 2" + "match:class ^(com.github.IsmaelMartinez.teams_for_linux)$, workspace 2" + "match:class ^(FreeTube)$, workspace 2" + "match:class ^(chrome-x.com__-Default)$, workspace 2" + "match:class ^(chrome-www.inoreader.com__all_articles-Default)$, workspace 2" + "match:class ^(chrome-mail.proton.me__u_0_inbox.com-Default)$, workspace 2" + "match:class ^(chrome-app.tuta.com__-Default)$, workspace 2" + "match:class ^(steam)$, workspace 3 silent" + "match:class ^(heroic)$, workspace 3" + "match:class ^(net.lutris.Lutris)$, workspace 3" + "match:class ^(rpcs3)$, workspace 3" + "match:class ^(winboat)$, workspace 5" + "match:class ^(obsidian)$, workspace 6" + "match:class ^(gimp)$, workspace 8" + "match:class .*potify, workspace 9 silent" + "match:class ^(com.obsproject.Studio)$, workspace 10" + ]; + + bind = [ + # background + "$mainMod, V, exec, cliphist list | hyprlauncher -m | cliphist decode | wl-copy" + "$mainMod ALT_L, V, exec, cliphist wipe && notify-send \"Clipboard\" \"Clipboard cleared!\"" + # power management + "$mainMod L_SHIFT ctrl, l, exec, hyprlock" + "$mainMod L_SHIFT ctrl, r, exec, openrgb -c black && systemctl reboot" + "$mainMod L_SHIFT ctrl, p, exec, openrgb -c black && systemctl poweroff" + "$mainMod L_SHIFT ctrl, s, exec, openrgb -c black && pidof hyprlock || sleep 1 && systemctl sleep" + "$mainMod L_SHIFT ctrl, m, exec, uwsm stop" + # zoom + "$mainMod alt, 0, exec, hyprctl -q keyword cursor:zoom_factor 1" + # focus management + "$mainMod, h, movefocus, l" + "$mainMod, l, movefocus, r" + "$mainMod, k, movefocus, u" + "$mainMod, j, movefocus, d" + "$mainMod, mouse_down, workspace, e+1" + "$mainMod, mouse_up, workspace, e-1" + "$mainMod L_SHIFT, right, exec, hyprctl dispatch movecurrentworkspacetomonitor +1" + "$mainMod L_SHIFT, left, exec, hyprctl dispatch movecurrentworkspacetomonitor -1" + # workspace management + "$mainMod, 1, workspace, 1" + "$mainMod, 2, workspace, 2" + "$mainMod, 3, workspace, 3" + "$mainMod, 4, workspace, 4" + "$mainMod, 5, workspace, 5" + "$mainMod, 6, workspace, 6" + "$mainMod, 7, workspace, 7" + "$mainMod, 8, workspace, 8" + "$mainMod, 9, workspace, 9" + "$mainMod, 0, workspace, 10" + # window management + "$mainMod SHIFT, 1, movetoworkspace, 1" + "$mainMod SHIFT, 2, movetoworkspace, 2" + "$mainMod SHIFT, 3, movetoworkspace, 3" + "$mainMod SHIFT, 4, movetoworkspace, 4" + "$mainMod SHIFT, 5, movetoworkspace, 5" + "$mainMod SHIFT, 6, movetoworkspace, 6" + "$mainMod SHIFT, 7, movetoworkspace, 7" + "$mainMod SHIFT, 8, movetoworkspace, 8" + "$mainMod SHIFT, 9, movetoworkspace, 9" + "$mainMod SHIFT, 0, movetoworkspace, 10" + # special workspace + "$mainMod, TAB, togglespecialworkspace, magic" + "$mainMod SHIFT, TAB, movetoworkspace, special:magic" + # layout + "$mainMod, S, layoutmsg, swapwithmaster" + "$mainMod, n, layoutmsg, swapnext" + "$mainMod, p, layoutmsg, swapprev" + # apps + "$mainMod, M, exec, [float] waypaper" + "$mainMod, RETURN, exec, [workspace 4] $terminal" + "$mainMod CONTROL_L, RETURN, exec, $terminal" + "$mainMod, space , exec, $menu" + "$mainMod ALT_L, c, exec, openrgb -c $openrgb_color" + "$mainMod Control_L, s, exec,[workspace 1] signal-desktop --password-store=\"kwallet6\"" + "$mainMod Control_L, s, focuswindow, class:^(signal)$" + "$mainMod Control_L, s, focuswindow, title:^(signal)$" + "$mainMod Control_L, v, sendshortcut, ctrl, k, class:^(vesktop)$" + "$mainMod Control_L, v, exec, uwsm app -- vesktop" + "$mainMod Control_L, v, focuswindow, class:^(vesktop)$" + "$mainMod Control_L, g, exec, uwsm app -- steam" + "$mainMod Control_L, g, focuswindow, class:^(steam)$" + "$mainMod Control_L, b, exec, uwsm app -- $browser" + "$mainMod Control_L, b, focuswindow, class:^(zen)$" + "$mainMod Control_L, n, exec, [workspace 6] uwsm app -- $notes" + "$mainMod Control_L, n, focuswindow, class:^(obsidian)$" + "$mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player" + "$mainMod Control_L, f, exec, uwsm app -- freetube" + "$mainMod Control_L, f, focuswindow, class:^(freetube)$" + "$mainMod Control_L, x, exec, uwsm app -- ~/.local/share/applications/x.desktop" + "$mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$" + "$mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell" + ]; + + binde = [ + "$mainMod alt, equal, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.1}')" + "$mainMod alt, minus, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 0.9}')" + "$mainMod L_SHIFT, l, resizeactive, 10 0" + "$mainMod L_SHIFT, h, resizeactive, -10 0" + "$mainMod L_SHIFT, k, resizeactive, 0 -10" + "$mainMod L_SHIFT, j, resizeactive, 0 10" + ]; + + bindel = [ + ",XF86MonBrightnessDown, exec, hyprctl hyprsunset gamma -10" + ",XF86MonBrightnessUp, exec, hyprctl hyprsunset gamma +10" + ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga" + ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga" + ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" + ]; + + bindl = [ + ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle && ~/.local/bin/check-if-muted.sh" + ", XF86AudioNext, exec, playerctl next" + ", Pause, exec, playerctl play-pause" + "$mainMod, Pause, exec, playerctl play-pause --player spotify" + ", XF86AudioPlay, exec, playerctl play-pause" + ", XF86AudioPrev, exec, playerctl previous" + ]; + + bindt = [ + ", PRINT, exec, ~/.local/bin/screenshot.sh region" + "$mainMod, PRINT, exec, ~/.local/bin/screenshot.sh fullscreen" + "alt_l, PRINT, exec, ~/.local/bin/screenshot.sh window" + ]; + + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + + bindd = [ + "$mainMod, F, Make app fullscreen, fullscreen" + "$mainMod, T, Toggle floating, togglefloating" + "$mainMod, P, Toggle pseudo, pseudo" + "$mainMod, S, Toggle split, togglesplit" + "$mainMod, Q, Kill active window, killactive" + ]; + }; + + extraConfig = '' + windowrule { + name = pavucontrol-float + match:class = ^(org.pulseaudio.pavucontrol)$ + float = 1 + size = 80% 60% + stay_focused = 1 + center = 1 + pin = 1 + } + + windowrule { + name = share-picker-float + match:class = ^(hyprland-share-picker)$ + float = 1 + center = 1 + pin = 1 + } + + windowrule { + name = steam-friends-list + match:title = ^(Lista znajomych)$ + float = 1 + center = 1 + size = 40% 60% + } + + windowrule { + name = vesktop-dont-focus-pls + match:class = ^(vesktop)$ + no_initial_focus = 1 + focus_on_activate = 0 + render_unfocused = 1 + } + + windowrule { + name = xdg-desktop-portal-gtk + match:class = ^(xdg-desktop-portal-gtk)$ + float = 1 + center = 1 + size = 55% 50% + } + + windowrule { + name = picture-in-picture + match:title = ^(Obraz w obrazie)$ + pseudo = 1 + no_initial_focus = 1 + } + + windowrule { + name = login-google-zen + match:title = ^(Logowanie – Konta Google — Zen Browser)$ + float = 1 + center = 1 + } + + windowrule { + name = prism-launcher + match:class = ^(org.prismlauncher.PrismLauncher)$ + workspace = 3 + } + + windowrule { + name = gamescope + match:class = ^(gamescope)$ + workspace = 3 + } + + monitorv2 { + output = DP-1 + mode = 2560x1440@180.06 + position = 0x0 + scale = 1 + vrr = 1 + supports_wide_color = 1 + bitdepth = 10 + sdr_min_luminance = 0.005 + sdr_max_luminance = 220 + cm = hdr + supports_hdr = 1 + } + + monitorv2 { + output = DP-2 + mode = 1920x1080@144 + position = auto-left + vrr = 1 + scale = 1.0 + } + + monitorv2 { + output = HDMI-A-2 + mode = highres + position = auto-up + scale = 1 + } + + monitorv2 { + output = + position = auto-right + scale = 1 + } + ''; + }; +} diff --git a/modules/hypr/hyprlauncher.nix b/modules/hypr/hyprlauncher.nix new file mode 100644 index 0000000..3bf5e2f --- /dev/null +++ b/modules/hypr/hyprlauncher.nix @@ -0,0 +1,22 @@ +{ isNixOS, lib, ... }: + +{ + services.hyprlauncher = { + enable = true; + package = lib.mkIf (!isNixOS) null; + + settings = { + cache.enabled = true; + + finders = { + desktop_icons = true; + desktop_launch_prefix = "uwsm app --"; + }; + + general = { + grab_focus = true; + }; + + }; + }; +} diff --git a/modules/hypr/hyprlock.nix b/modules/hypr/hyprlock.nix new file mode 100644 index 0000000..b79689a --- /dev/null +++ b/modules/hypr/hyprlock.nix @@ -0,0 +1,88 @@ +{ isNixOS, lib, ... }: + +{ + programs.hyprlock = { + enable = true; + package = lib.mkIf (!isNixOS) null; + + settings = { + "$font" = "Monospace"; + + general = { + hide_cursor = false; + }; + + animations = { + enabled = true; + bezier = [ + "linear, 1, 1, 0, 0" + ]; + animation = [ + "fadeIn, 1, 5, linear" + "fadeOut, 1, 5, linear" + "inputFieldDots, 1, 2, linear" + ]; + }; + + background = [ + { + monitor = ""; + path = "screenshot"; + blur_passes = 3; + } + ]; + + input-field = [ + { + monitor = ""; + size = "20%, 5%"; + outline_thickness = 3; + inner_color = "rgba(0, 0, 0, 0.0)"; + outer_color = "rgba(33ccffee) rgba(00ff99ee) 45deg"; + check_color = "rgba(00ff99ee) rgba(ff6633ee) 120deg"; + fail_color = "rgba(ff6633ee) rgba(ff0066ee) 40deg"; + font_color = "rgb(143, 143, 143)"; + fade_on_empty = false; + rounding = 15; + font_family = "$font"; + placeholder_text = "Input password..."; + fail_text = "$PAMFAIL"; + dots_spacing = 0.3; + position = "0, -20"; + halign = "center"; + valign = "center"; + } + ]; + + label = [ + { + monitor = ""; + text = "$TIME"; + font_size = 90; + font_family = "$font"; + position = "-30, 0"; + halign = "right"; + valign = "top"; + } + { + monitor = ""; + text = ''cmd[update:60000] date +"%A, %d %B %Y"''; + font_size = 25; + font_family = "$font"; + position = "-30, -150"; + halign = "right"; + valign = "top"; + } + { + monitor = ""; + text = "$LAYOUT[pl]"; + font_size = 24; + onclick = "hyprctl switchxkblayout all next"; + position = "250, -20"; + halign = "center"; + valign = "center"; + } + ]; + }; + }; +} diff --git a/modules/hypr/hyprsunset.nix b/modules/hypr/hyprsunset.nix new file mode 100644 index 0000000..cd5e941 --- /dev/null +++ b/modules/hypr/hyprsunset.nix @@ -0,0 +1,33 @@ +{ + isNixOS, + pkgs, + ... +}: + +{ + services.hyprsunset = { + enable = true; + package = + if isNixOS then + pkgs.hyprsunset + else + (pkgs.writeShellScriptBin "hyprsunset" "exec /usr/bin/hyprsunset \"$@\""); + + settings = { + max-gamma = 150; + + profile = [ + { + time = "7:00"; + identity = true; + } + { + time = "21:00"; + identity = false; + temperature = 4500; + gamma = 0.8; + } + ]; + }; + }; +} diff --git a/modules/nixvim.nix b/modules/nixvim.nix index 78e997c..c5acb94 100644 --- a/modules/nixvim.nix +++ b/modules/nixvim.nix @@ -166,6 +166,7 @@ cssls.enable = true; html.enable = true; emmet_ls.enable = true; + friendly-snippets.enable = true; # dev clangd.enable = true; pyright.enable = true;