Wofi is 🔥

This commit is contained in:
Javier Feliz 2025-08-11 02:10:05 -04:00
parent 334f682da4
commit af5816e045
6 changed files with 118 additions and 250 deletions

View File

@ -110,12 +110,8 @@
nix.settings = {
substituters = [
"https://cache.nixos.org/"
"https://walker.cachix.org"
"https://walker-git.cachix.org"
];
trusted-public-keys = [
"walker.cachix.org-1:fG8q+uAaMqhsMxWjwvk0IMb4mFPFLqHjuvfwQxE4oJM="
"walker-git.cachix.org-1:vmC0ocfPWh0S/vRAQGtChuiZBTAe4wiKDeyyXM0/7pM="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
];
};

53
flake.lock generated
View File

@ -207,22 +207,6 @@
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1747542820,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
@ -253,8 +237,7 @@
"home-manager": "home-manager",
"hyprshell": "hyprshell",
"nixpkgs": "nixpkgs_2",
"stylix": "stylix",
"walker": "walker"
"stylix": "stylix"
}
},
"stylix": {
@ -306,21 +289,6 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
@ -401,25 +369,6 @@
"repo": "base16-zed",
"type": "github"
}
},
"walker": {
"inputs": {
"nixpkgs": "nixpkgs_3",
"systems": "systems_2"
},
"locked": {
"lastModified": 1754830695,
"narHash": "sha256-6nQYTUU3THpCuOaXNbvbvnZlLa1NdJTISdz45erI6Pw=",
"owner": "abenz1267",
"repo": "walker",
"rev": "28af0c388908f4557161c57f449c61bb5847c508",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "walker",
"type": "github"
}
}
},
"root": "root",

View File

@ -12,7 +12,6 @@
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
walker.url = "github:abenz1267/walker";
};
outputs =

View File

@ -13,199 +13,9 @@
./hyprland/hyprpaper.nix
# Desktop environment
./hyprland/hyprpanel.nix
inputs.walker.homeManagerModules.default
./wofi.nix
];
programs.walker = {
enable = true;
runAsService = true;
config = {
cache = false;
websearch = {
prefix = ":";
};
theme = "nixos";
};
theme.style = ''
@define-color selected-text #fabd2f;
@define-color text #ebdbb2;
@define-color base #282828;
@define-color border #ebdbb2;
@define-color foreground #ebdbb2;
@define-color background #282828;
/* Reset all elements */
#window,
#box,
#search,
#password,
#input,
#prompt,
#clear,
#typeahead,
#list,
child,
scrollbar,
slider,
#item,
#text,
#label,
#sub,
#activationlabel {
all: unset;
}
* {
font-family: 'CaskaydiaMono Nerd Font', monospace;
font-size: 18px;
}
/* Window */
#window {
background: transparent;
color: @text;
}
/* Main box container */
#box {
background: alpha(@base, 0.95);
padding: 20px;
border: 2px solid @border;
border-radius: 0px;
}
/* Search container */
#search {
background: @base;
padding: 10px;
margin-bottom: 0;
}
/* Hide prompt icon */
#prompt {
opacity: 0;
min-width: 0;
margin: 0;
}
/* Hide clear button */
#clear {
opacity: 0;
min-width: 0;
}
/* Input field */
#input {
background: none;
color: @text;
padding: 0;
}
#input placeholder {
opacity: 0.5;
color: @text;
}
/* Hide typeahead */
#typeahead {
opacity: 0;
}
/* List */
#list {
background: transparent;
}
/* List items */
child {
padding: 0px 12px;
background: transparent;
border-radius: 0;
}
child:selected,
child:hover {
background: transparent;
}
/* Item layout */
#item {
padding: 0;
}
#item.active {
font-style: italic;
}
/* Icon */
#icon {
margin-right: 10px;
-gtk-icon-transform: scale(0.7);
}
/* Text */
#text {
color: @text;
padding: 14px 0;
}
#label {
font-weight: normal;
}
/* Selected state */
child:selected #text,
child:selected #label,
child:hover #text,
child:hover #label {
color: @selected-text;
}
/* Hide sub text */
#sub {
opacity: 0;
font-size: 0;
min-height: 0;
}
/* Hide activation label */
#activationlabel {
opacity: 0;
min-width: 0;
}
/* Scrollbar styling */
scrollbar {
opacity: 0;
}
/* Hide spinner */
#spinner {
opacity: 0;
}
/* Hide AI elements */
#aiScroll,
#aiList,
.aiItem {
opacity: 0;
min-height: 0;
}
/* Bar entry (switcher) */
#bar {
opacity: 0;
min-height: 0;
}
.barentry {
opacity: 0;
}
'';
};
home.packages = with pkgs; [
# Running apps
# wofi

View File

@ -50,8 +50,8 @@
"$mod, f, fullscreen, 0"
"$mod, v, togglefloating, active"
# "$mod, SPACE, exec, wofi --show drun"
"$mod, SPACE, exec, walker"
"$mod, SPACE, exec, wofi --show drun"
"$mod, d, exec, ${pkgs.wofi-emoji}/bin/wofi-emoji"
"$mod SHIFT, s, exec, hyprshot --mode region"
", PRINT, exec, hyprshot --mode output"

114
home/wofi.nix Normal file
View File

@ -0,0 +1,114 @@
{
config,
pkgs,
inputs,
lib,
...
}:
let
accent = "#${config.lib.stylix.colors.base0D}";
background = "#${config.lib.stylix.colors.base00}";
background-alt = "#${config.lib.stylix.colors.base01}";
foreground = "#${config.lib.stylix.colors.base05}";
font = config.stylix.fonts.serif.name;
in
{
home.packages = with pkgs; [
wofi-emoji
];
programs.wofi = {
enable = true;
settings = {
allow_markup = true;
width = 650;
show = "drun";
prompt = "Apps";
normal_window = true;
layer = "top";
height = "325px";
orientation = "vertical";
halign = "fill";
line_wrap = "off";
dynamic_lines = false;
allow_images = true;
image_size = 24;
exec_search = false;
hide_search = false;
parse_search = false;
insensitive = true;
hide_scroll = true;
no_actions = true;
sort_order = "default";
gtk_dark = true;
filter_rate = 100;
key_expand = "Tab";
key_exit = "Escape";
};
style =
lib.mkForce
# css
''
* {
font-family: "${font}";
font-weight: 600;
font-size: 16px;
}
#window {
background-color: ${background};
color: ${foreground};
border-radius: 0;
}
#outer-box {
padding: 20px;
}
#input {
background-color: ${background-alt};
border: 0px solid ${accent};
color: ${foreground};
padding: 8px 12px;
}
#scroll {
margin-top: 20px;
}
#inner-box {}
#img {
padding-right: 8px;
}
#text {
color: ${foreground};
}
#text:selected {
color: ${foreground};
}
#entry {
padding: 6px;
}
#entry:selected {
background-color: ${accent};
color: ${foreground};
}
#unselected {}
#selected {}
#input,
#entry:selected {
border-radius: 0;
}
'';
};
}