finally got hyprland plugins to work (however only from nixpkgs repo)

This commit is contained in:
Tomas Rivera
2026-02-28 20:12:25 +01:00
parent 59f8955947
commit ab4de4b42d
9 changed files with 314 additions and 44 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
};
};
# never got nixvim to wokrs. ):
# nixvim = {
# url = "github:nix-community/nixvim/nixos-25.11";
+41 -28
View File
@@ -19,6 +19,12 @@ home-manager.users = {
tomasr = ./home.nix;
};
environment.pathsToLink = [
"/share/applications"
"/share/xdg-desktop-portal"
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@@ -58,6 +64,7 @@ programs.hyprland = {
xwayland.enable = true;
};
#enable sddm
services.displayManager.sddm = {
enable = true;
@@ -126,26 +133,34 @@ services.upower.enable = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
wget
tree # shows dir in tree
zsh # better bash
brightnessctl # control brightness
pulseaudio # sound server
playerctl # controls media player
blueman # GTK-based Bluetooth Manager
udiskie # removable disk automounter for udisks
networkmanagerapplet # NetworkManager control applet
cliphist # Wayland clipboard manager
wl-clipboard # cli copy/past utilities for Wayland
jp # lightweight and flexible cli JSON parser
notepad-next
libnotify # Library that sends desktop notifications to a notification daemon
ripgrep #better grepp
hyprkeys # keybind helper
cowsay
cmatrix
swww #wallpaper daemon
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and swww to change wallpapers dinamically)
#we need to install gnome and kde utils individually as we dont use gnome
gnome-calculator
snapshot
gnome-characters
gnome-disk-utility
kdePackages.okular
nautilus
gnome-font-viewer
wget
tree # shows dir in tree
zsh # better bash
brightnessctl # control brightness
pulseaudio # sound server
playerctl # controls media player
blueman # GTK-based Bluetooth Manager
udiskie # removable disk automounter for udisks
networkmanagerapplet # NetworkManager control applet
cliphist # Wayland clipboard manager
wl-clipboard # cli copy/past utilities for Wayland
jp # lightweight and flexible cli JSON parser
notepad-next
libnotify # Library that sends desktop notifications to a notification daemon
ripgrep #better grepp
hyprkeys # keybind helper
cowsay
cmatrix
swww #wallpaper daemon
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and swww to change wallpapers dinamically)
gcc # GNU C compiler
libreoffice
gruvbox-gtk-theme
@@ -154,14 +169,12 @@ powertop
inetutils # collections of network programs such as telnet
python313Packages.pygments # used for ccat (comment of colorize plugin from oh-my-zsh)
fzf
#we need to install gnome and kde utils individually as we dont use gnome
gnome-calculator
snapshot
gnome-characters
gnome-disk-utility
kdePackages.okular
nautilus
gnome-font-viewer
jq # json parser used in some scripts
bottom # Cross-platform graphical process/system monitor with a customizable interface
cmatrix
tomato-c # pomodoro timer
pavucontrol # PulseAudio Volume Control
hyprshot
];
# fonts
+3
View File
@@ -20,6 +20,8 @@ imports = [
../../modules/home-manager/waybar.nix
#../../modules/home-manager/oh-my-posh.nix # zsh customizer
../../modules/home-manager/oh-my-zsh.nix # another zsh customizer
../../modules/home-manager/hypridle.nix
../../modules/home-manager/swaylock.nix
];
@@ -56,6 +58,7 @@ home.packages = [
(pkgs.callPackage ../../modules/scripts/mountkdrive.nix {})
(pkgs.callPackage ../../modules/scripts/weatherwaybar.nix {})
(pkgs.callPackage ../../modules/scripts/colorpicker.nix {})
(pkgs.callPackage ../../modules/scripts/killall.nix {})
#pkgs
pkgs.gruvbox-gtk-theme
# # Adds the 'hello' command to your environment. It prints a friendly
+23
View File
@@ -0,0 +1,23 @@
{ config, pkgs, ... }:
{
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "notify-send 'lock!'"; # dbus/sysd lock command (loginctl lock-session)
unlock_cmd = "notify-send 'unlock!'"; # same as above, but unlock
before_sleep_cmd = "notify-send 'Zzz'"; # command ran before sleep
after_sleep_cmd = "notify-send 'Awake!"; # command ran after sleep
ignore_dbus_inhibit = false; # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
ignore_systemd_inhibit = false; # whether to ignore systemd-inhibit --what=idle inhibitors
};
listener = {
timeout = 500; # in seconds
on-timeout = "notify-send 'You are idle!'"; # command to run when timeout has passed
on-resume = "notify-send 'Welcome back!'"; # command to run when activity is detected after timeout has fired.
};
};
};
}
+177 -5
View File
@@ -12,6 +12,9 @@ in
#hint Electron apps to use on wayland;
home.sessionVariables.NIXOS_OZONE_WL="1";
wayland.windowManager.hyprland.plugins = [
pkgs.hyprlandPlugins.hyprspace
];
wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER";
"$term" = "kitty";
@@ -20,6 +23,25 @@ in
"$browser" = "firefox"; # change to librewolf later
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
animations = {
enabled = true;
bezier = [
"wind, 0.05, 0.9, 0.1, 1.05"
"winIn, 0.1, 1.1, 0.1, 1.1"
"winOut, 0.3, -0.3, 0, 1"
"liner, 1, 1, 1, 1"
];
animation = [
"windows, 1, 6, wind, slide"
"windowsIn, 1, 6, winIn, slide"
"windowsOut, 1, 5, winOut, slide"
"windowsMove, 1, 5, wind, slide"
"border, 1, 1, liner"
"borderangle, 1, 30, liner, loop"
"fade, 1, 10, default"
"workspaces, 1, 5, wind"
];
};
# █▀▀ █▄░█ █░█
# ██▄ █░▀█ ▀▄▀
@@ -49,7 +71,15 @@ in
# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
#not all binds now. Do it later when all scripts and etc. are moved
# binds to do
# when librewolf setup put $browser as librewolf
# with framework 16 rgb keypad
# exec a little kitty floating window with tomato executed (pomodoro app)
# if hyprexpo plugin enabled bind = $mainMod, Space, hyprexpo:expo, toggle
#bind = Ctrl+$mainMod, 1, exec, pgrep -x ollama > /dev/null || ollama serve & notify-send -u normal -t 3000 "Running Deepseek-r1 with 1.5b parameters" "" & kitty -e sh -c "ollama run deepseek-r1:1.5b"
#bind = Ctrl+$mainMod, 2, exec, pgrep -x ollama > /dev/null || ollama serve & notify-send -u normal -t 3000 "Running Deepseek-r1 with 8b parameters" "" & kitty -e sh -c "ollama run deepseek-r1:8b"
bind = [
#hyprland/utility keybindings
"$mod, W, togglefloating"
@@ -94,6 +124,9 @@ in
"$mod, mouse_up, workspace, e-1"
"$mod, V, exec, cliphist list | rofi -dmenu| cliphist decode | wl-copy" # copy paste
"$mod, B, exec, hyprkeys -bkr | rofi -dmenu"
"$mod, A, tagwindow, noborder" # used to not apply image border
"$mod, S, togglespecialworkspace,"
"Alt+$mod, S, movetoworkspace, special"
#apps keybindings
"$mod, T, exec, $term"
"$mod, E, exec, $file"
@@ -101,7 +134,23 @@ in
"$mod+Shift, A, exec, rofi -show drun"
"$mod, Q, exec, custom-dontkillsteam"
"Ctrl+Alt, W, exec, pkill waybar || waybar"
"$mod, L, exec, swaylock -eFLK -i ${wallpaper}"
"$mod, F11, exec, hyprshot -m window"
", F11, exec, hyprshot -m output"
"$mod_SHIFT, S, exec, hyprshot -m region --clipboard only"
# framework 16 rgb macropad
"$mod, P, exec, swaync-client -t"
"Ctrl+$mod, 3, exec, pavucontrol"
"Ctrl+$mod, 5, exec, gnome-characters"
"Ctrl+$mod, 6, exec, custom-killall"
# reloads the autostart programs
"Ctrl+$mod, 4, exec, sleep 3 && kitty -o font_size=16 -e sh -c 'custom-weather'"
"Ctrl+$mod, 4, exec, sleep 2 && kitty -o font_size=8 -e sh -c 'custom-cowsay'"
"Ctrl+$mod, 4, exec, kitty -e 'sleep 2 & clear & fastfetch'"
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=5 -e btm --theme gruvbox --disable-click --disable_advanced_kill --enable_cache_memory -g -R -T "
"Ctrl+$mod, 4, exec, sleep 3 && kitty -o font_size=1 -e sh -c 'cmatrix -br'"
#plugins keybindings
"$mod, SPACE, overview:toggle, "
];
binde = [
@@ -111,14 +160,14 @@ in
"$mod+Shift, Down, resizeactive,m 0 30"
];
bindl = [
", F1, exec, pactl set-sink-mute @DEFAULT_SINK@ togge" #toggle audio mute
", F1, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" #toggle audio mute
", F5, exec, playerctl play-pause" # media F4-F6
", F4, exec, playerctl previous"
", F6, exec, playerctl next"
];
bindel = [
", F2, exec, pactl set-sink-volume @DEFAULT_SINK@ -10%" # decrease volume
", F3, exec, pactl set-sinl-volume @DEFAULT_SINK@ +10%" # increase volume
", F3, exec, pactl set-sink-volume @DEFAULT_SINK@ +10%" # increase volume
", F7, exec, brightnessctl s 10%-" # decrease brightness
", F8, exec, brightnessctl s +10%" # increase brightness
];
@@ -147,10 +196,34 @@ in
"sleep 1 && custom-wallpaper"
"custom-mountkdrive"
"waybar"
#########################
# login autostart
#######################
"[workspace 1 silent] sleep 3 && kitty -o font_size=16 -e sh -c 'custom-weather'"
# will launch weather (Third) with a reduced font size
"[workspace 1 silent] sleep 2 && kitty -o font_size=8 -e sh -c 'custom-cowsay'"
# will launch quotes (fourth)
"[workspace 1 silent] kitty - e 'sleep 2 & clear & fastfetch'"
# the terminal will exec .zshrc so FastFetch will be launched (First)
"[workspace 1 silent] sleep 1 && kitty -o font_size=5 -e btm --theme gruvbox --disable-click --disable_advanced_kill --enable_cache_memory -g -R -T "
# will launch bottom (second)
"[workspace 1 silent] sleep 3 && kitty -o font_size=1 -e sh -c 'cmatrix -br'"
# will launch cmatrix
# sleep is used to launch the app in a specific order, because normally exec-once are run in parrallel
######################
######################
];
# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█
dwindle = {
pseudotile = true;
preserve_split = true;
};
# █▀▄▀█ █ █▀ █▀▀
# █░▀░█ █ ▄█ █▄▄
@@ -163,9 +236,108 @@ in
};
# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄
# █░▀░█ █▄█ █#░▀█ █ ░█░ █▄█ █▀▄
monitor = [
",preferred, auto, auto"
#",preferred, auto, auto"
"eDP-1, highres@highrr, 0x0, 1"
"HDMI-A-1, highres2highrr, auto-left, 1"
];
# _______ ___ __ __ _______ ___ __ _ _______
#| || | | | | || || | | | | || |
#| _ || | | | | || ___|| | | |_| || _____|
#| |_| || | | |_| || | __ | | | || |_____
#| ___|| |___ | || || || | | _ ||_____ |
#| | | || || |_| || | | | | | _____| |
#|___| |_______||_______||_______||___| |_| |__||_______|
#
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█
windowrulev2 = [
"opacity 0.90 0.90,class:^(firefox)$"
"opacity 0.90 0.90,class:^(Brave-browser)$"
"opacity 0.80 0.80,class:^(code-oss)$"
"opacity 0.80 0.80,class:^(Code)$"
"opacity 0.80 0.80,class:^(code-url-handler)$"
"opacity 0.80 0.80,class:^(code-insiders-url-handler)$"
"opacity 0.75 0.75,class:^(kitty)$"
"opacity 0.80 0.80,class:^(org.kde.dolphin)$"
"opacity 0.80 0.80,class:^(org.kde.ark)$"
"opacity 0.80 0.80,class:^(nwg-look)$"
"opacity 0.80 0.80,class:^(qt5ct)$"
"opacity 0.80 0.80,class:^(qt6ct)$"
"opacity 0.80 0.80,class:^(kvantummanager)$"
"opacity 0.80 0.70,class:^(org.pulseaudio.pavucontrol)$"
"opacity 0.80 0.70,class:^(blueman-manager)$"
"opacity 0.80 0.70,class:^(nm-applet)$"
"opacity 0.80 0.70,class:^(nm-connection-editor)$"
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
"opacity 0.80 0.70,class:^(polkit-gnome-authentication-agent-1)$"
"opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.gtk)$"
"opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.hyprland)$"
"opacity 0.70 0.70,class:^([Ss]team)$"
"opacity 0.70 0.70,class:^(steamwebhelper)$"
"opacity 0.70 0.70,class:^(Spotify)$"
"opacity 0.70 0.70,initialTitle:^(Spotify Free)$"
"opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$" # Clapper-Gtk
"opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$" # Flatseal-Gtk
"opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$" # Cartridges-Gtk
"opacity 0.80 0.80,class:^(com.obsproject.Studio)$" # Obs-Qt
"opacity 0.80 0.80,class:^(gnome-boxes)$" # Boxes-Gtk
"opacity 0.80 0.80,class:^(discord)$" # Discord-Electron
"opacity 0.80 0.80,class:^(WebCord)$" # WebCord-Electron
"opacity 0.80 0.80,class:^(ArmCord)$" # ArmCord-Electron
"opacity 0.80 0.80,class:^(app.drey.Warp)$" # Warp-Gtk
"opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$" # ProtonUp-Qt
"opacity 0.80 0.80,class:^(yad)$" # Protontricks-Gtk
"opacity 0.80 0.80,class:^(Signal)$" # Signal-Gtk
"opacity 0.80 0.80,class:^(io.github.alainm23.planify)$" # planify-Gtk
"opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$" # Upscaler-Gtk
"opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$" # VideoDownloader-Gtk
"opacity 0.80 0.80,class:^(io.gitlab.adhami3310.Impression)$" # Impression-Gtk
"opacity 0.80 0.80,class:^(io.missioncenter.MissionCenter)$" # MissionCenter-Gtk
"opacity 0.80 0.80,class:^(io.github.flattool.Warehouse)$" # Warehouse-Gtk
"float,class:^(org.kde.dolphin)$,title:^(Progress Dialog Dolphin)$"
"float,class:^(org.kde.dolphin)$,title:^(Copying Dolphin)$"
"float,class:^(firefox)$,title:^(Picture-in-Picture)$"
"float,class:^(firefox)$,title:^(Library)$"
"float,class:^(kitty)$,title:^(top)$"
"float,class:^(kitty)$,title:^(btop)$"
"float,class:^(kitty)$,title:^(htop)$"
"float,class:^(vlc)$"
"float,class:^(kvantummanager)$"
"float,class:^(qt5ct)$"
"float,class:^(qt6ct)$"
"float,class:^(nwg-look)$"
"float,class:^(org.kde.ark)$"
"float,class:^(org.pulseaudio.pavucontrol)$"
"float,class:^(blueman-manager)$"
"float,class:^(nm-applet)$"
"float,class:^(nm-connection-editor)$"
"float,class:^(org.kde.polkit-kde-authentication-agent-1)$"
"float,class:^(Signal)$" # Signal-Gtk
"float,class:^(com.github.rafostar.Clapper)$" # Clapper-Gtk
"float,class:^(app.drey.Warp)$" # Warp-Gtk
"float,class:^(net.davidotek.pupgui2)$" # ProtonUp-Qt
"float,class:^(yad)$" # Protontricks-Gtk
"float,class:^(eog)$" # Imageviewer-Gtk
"float,class:^(io.github.alainm23.planify)$" # planify-Gtk
"float,class:^(io.gitlab.theevilskeleton.Upscaler)$" # Upscaler-Gtk
"float,class:^(com.github.unrud.VideoDownloader)$" # VideoDownloader-Gkk
"float,class:^(io.gitlab.adhami3310.Impression)$" # Impression-Gtk
"float,class:^(io.missioncenter.MissionCenter)$" # MissionCenter-Gtk
#"plugin:imgborders:noimgborders, tag:noborder"
];
layerrule = [
"blur,rofi"
"ignorezero,rofi"
"blur,notifications"
"ignorezero,notifications"
"blur,swaync-notification-window"
"ignorezero,swaync-notification-window"
"blur,swaync-control-center"
"ignorezero,swaync-control-center"
"blur,logout_dialog"
];
};
}
+2
View File
@@ -6,6 +6,8 @@
#font.name = nerd-fonts._0xproto;
#font.size = "10";
extraConfig = ''
font nerd-fonts._0xproto
font_size 14
bold_font auto
italic_font auto
bold_italic_font auto
+38
View File
@@ -0,0 +1,38 @@
{ config, pkgs, ... }:
{
programs.swaylock = {
enable = true;
settings = {
color="1e1e2e";
bs-hl-color="f5e0dc";
caps-lock-bs-hl-color="f5e0dc";
caps-lock-key-hl-color="a6e3a1";
inside-color="00000000";
inside-clear-color = "00000000";
inside-caps-lock-color="00000000";
inside-ver-color="00000000";
inside-wrong-color="00000000";
key-hl-color="a6e3a1";
layout-bg-color="00000000";
layout-border-color="00000000";
layout-text-color="cdd6f4";
line-color="00000000";
line-clear-color="00000000";
line-caps-lock-color="00000000";
line-ver-color="00000000";
line-wrong-color="00000000";
ring-color="b4befe";
ring-clear-color="f5e0dc";
ring-caps-lock-color="fab387";
ring-ver-color="89b4fa";
ring-wrong-color="eba0ac";
separator-color="00000000";
text-color="cdd6f4";
text-clear-color="f5e0dc";
text-caps-lock-color="fab387";
text-ver-color="89b4fa";
text-wrong-color="eba0ac";
};
};
}
+10 -10
View File
@@ -393,7 +393,7 @@
@define-color active @color6;
* {
font-size: 16px;
font-size: 23px;
font-family: "0xProto Nerd Font";
min-width: 8px;
min-height: 0px;
@@ -428,7 +428,7 @@ tooltip {
menu label,
tooltip label {
font-size: 14px;
font-size: 20px;
color: lighter(@active);
}
@@ -464,7 +464,7 @@ tooltip label {
#together,
#submap,
#custom-weather {
font-size: 12px;
font-size: 17px;
}
#custom-recorder,
@@ -489,7 +489,7 @@ tooltip label {
#custom-hotspot,
#custom-github,
#custom-notifications {
font-size: 14px;
font-size: 20px;
}
#custom-hotspot {
@@ -510,17 +510,17 @@ tooltip label {
}
#custom-cpu-icon {
font-size: 25px;
font-size: 36px;
}
#custom-cputemp,
#temperature {
font-size: 12px;
font-size: 17px;
}
#disk,
#memory,
#cpu {
font-size: 14px;
font-size: 20px;
font-weight: bold;
}
@@ -592,7 +592,7 @@ tooltip label {
}
#battery {
font-size: 12px;
font-size: 17px;
border-radius: 8px;
padding: 4px 0px;
margin: 4px 2px 4px 2px;
@@ -615,13 +615,13 @@ tooltip label {
}
#battery.powerdraw {
font-size: 12px;
font-size: 17px;
padding: 0;
margin-right: -20px;
margin-left: -20px;
}
#battery.w {
font-size: 12px;
font-size: 17px;
padding: 0;
margin-left: -20px;
margin-right: -20px;
+19
View File
@@ -0,0 +1,19 @@
{ writeShellApplication, hyprland, jq,... }:
writeShellApplication {
name = "custom-killall";
runtimeInputs = [
hyprland
jq
];
text = ''
active_workspace_id=$(hyprctl activeworkspace -j | jq -r '.id')
hyprctl clients -j |
jq -r ".[]
| select(.workspace.id==''${active_workspace_id})
| select(.focusHistoryID!=0)
| .pid" |
xargs -r kill
'';
}