mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-25 02:08:29 +02:00
feat: replace wofi by anyrun - wayland
This commit is contained in:
@@ -31,7 +31,7 @@ Nix allows for easy-to-manage, collaborative, reproducible deployments. This mea
|
|||||||
| **Window Manager** | [Hyprland][Hyprland] | [i3][i3] |
|
| **Window Manager** | [Hyprland][Hyprland] | [i3][i3] |
|
||||||
| **Terminal Emulator** | [Kitty][Kitty] | [Kitty][Kitty] |
|
| **Terminal Emulator** | [Kitty][Kitty] | [Kitty][Kitty] |
|
||||||
| **Bar** | [Waybar][Waybar] | [i3block][i3block] |
|
| **Bar** | [Waybar][Waybar] | [i3block][i3block] |
|
||||||
| **Application Launcher** | [wofi][wofi] | [rofi][rofi] |
|
| **Application Launcher** | [anyrun][anyrun] | [rofi][rofi] |
|
||||||
| **Notification Daemon** | [Mako][Mako] | [Dunst][Dunst] |
|
| **Notification Daemon** | [Mako][Mako] | [Dunst][Dunst] |
|
||||||
| **Display Manager** | [GDM][GDM] | [GDM][GDM] |
|
| **Display Manager** | [GDM][GDM] | [GDM][GDM] |
|
||||||
| **Color Scheme** | [Catppuccin][Catppuccin] | [Catppuccin][Catppuccin] |
|
| **Color Scheme** | [Catppuccin][Catppuccin] | [Catppuccin][Catppuccin] |
|
||||||
@@ -184,7 +184,7 @@ Other dotfiles that inspired me:
|
|||||||
[Waybar]: https://github.com/Alexays/Waybar
|
[Waybar]: https://github.com/Alexays/Waybar
|
||||||
[i3block]: https://github.com/vivien/i3blocks
|
[i3block]: https://github.com/vivien/i3blocks
|
||||||
[rofi]: https://github.com/davatorium/rofi
|
[rofi]: https://github.com/davatorium/rofi
|
||||||
[wofi]: https://hg.sr.ht/~scoopta/wofi
|
[anyrun]: https://github.com/Kirottu/anyrun
|
||||||
[Dunst]: https://github.com/dunst-project/dunst
|
[Dunst]: https://github.com/dunst-project/dunst
|
||||||
[Fcitx5]: https://github.com/fcitx/fcitx5
|
[Fcitx5]: https://github.com/fcitx/fcitx5
|
||||||
[Btop]: https://github.com/aristocratos/btop
|
[Btop]: https://github.com/aristocratos/btop
|
||||||
|
|||||||
45
flake.lock
generated
45
flake.lock
generated
@@ -21,6 +21,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"anyrun": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1690204837,
|
||||||
|
"narHash": "sha256-YrvbqM9WXr3/cgFVwc1EjIaQq4aI4DdrB1fhHfAW/d4=",
|
||||||
|
"owner": "Kirottu",
|
||||||
|
"repo": "anyrun",
|
||||||
|
"rev": "da97c9287f01f7d85ecf5e4ab8819bde3ae0e79a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Kirottu",
|
||||||
|
"repo": "anyrun",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"astronvim": {
|
"astronvim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -204,6 +225,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"anyrun",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1685662779,
|
||||||
|
"narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nixpkgs-wayland",
|
"nixpkgs-wayland",
|
||||||
@@ -386,7 +428,7 @@
|
|||||||
},
|
},
|
||||||
"nix-eval-jobs": {
|
"nix-eval-jobs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts_2",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
@@ -607,6 +649,7 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
|
"anyrun": "anyrun",
|
||||||
"astronvim": "astronvim",
|
"astronvim": "astronvim",
|
||||||
"catppuccin-alacritty": "catppuccin-alacritty",
|
"catppuccin-alacritty": "catppuccin-alacritty",
|
||||||
"catppuccin-bat": "catppuccin-bat",
|
"catppuccin-bat": "catppuccin-bat",
|
||||||
|
|||||||
@@ -190,6 +190,11 @@
|
|||||||
hyprland.url = "github:hyprwm/Hyprland/v0.27.2";
|
hyprland.url = "github:hyprwm/Hyprland/v0.27.2";
|
||||||
# community wayland nixpkgs
|
# community wayland nixpkgs
|
||||||
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
|
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
|
||||||
|
# anyrun - a wayland launcher
|
||||||
|
anyrun ={
|
||||||
|
url = "github:Kirottu/anyrun";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
# generate iso/qcow2/docker/... image from nixos configuration
|
# generate iso/qcow2/docker/... image from nixos configuration
|
||||||
nixos-generators = {
|
nixos-generators = {
|
||||||
@@ -265,10 +270,12 @@
|
|||||||
nixConfig = {
|
nixConfig = {
|
||||||
experimental-features = ["nix-command" "flakes"];
|
experimental-features = ["nix-command" "flakes"];
|
||||||
|
|
||||||
|
builders-use-substitutes = true;
|
||||||
substituters = [
|
substituters = [
|
||||||
# replace official cache with a mirror located in China
|
# replace official cache with a mirror located in China
|
||||||
"https://mirrors.ustc.edu.cn/nix-channels/store"
|
"https://mirrors.ustc.edu.cn/nix-channels/store"
|
||||||
"https://cache.nixos.org"
|
"https://cache.nixos.org"
|
||||||
|
"https://anyrun.cachix.org"
|
||||||
];
|
];
|
||||||
|
|
||||||
# nix community's cache server
|
# nix community's cache server
|
||||||
@@ -280,6 +287,7 @@
|
|||||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
|
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
|
||||||
|
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
87
home/linux/hyprland/anyrun.nix
Normal file
87
home/linux/hyprland/anyrun.nix
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
{ pkgs, anyrun, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
anyrun.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.anyrun = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
plugins = with anyrun.packages.${pkgs.system}; [
|
||||||
|
applications
|
||||||
|
randr
|
||||||
|
rink
|
||||||
|
shell
|
||||||
|
symbols
|
||||||
|
translate
|
||||||
|
];
|
||||||
|
|
||||||
|
width.fraction = 0.3;
|
||||||
|
y.absolute = 15;
|
||||||
|
hidePluginInfo = true;
|
||||||
|
closeOnClick = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# custom css for anyrun, based on catppuccin-mocha
|
||||||
|
extraCss = ''
|
||||||
|
@define-color bg-col rgba(30, 30, 46, 0.7);
|
||||||
|
@define-color bg-col-light rgba(150, 220, 235, 0.7);
|
||||||
|
@define-color border-col rgba(30, 30, 46, 0.7);
|
||||||
|
@define-color selected-col rgba(150, 205, 251, 0.7);
|
||||||
|
@define-color fg-col #D9E0EE;
|
||||||
|
@define-color fg-col2 #F28FAD;
|
||||||
|
|
||||||
|
* {
|
||||||
|
transition: 200ms ease;
|
||||||
|
font-family: "JetBrainsMono Nerd Font";
|
||||||
|
font-size: 1.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#plugin,
|
||||||
|
#main {
|
||||||
|
border: 3px solid @border-col;
|
||||||
|
color: @fg-col;
|
||||||
|
background-color: @bg-col;
|
||||||
|
}
|
||||||
|
/* anyrun's input window - Text */
|
||||||
|
#entry {
|
||||||
|
color: @fg-col;
|
||||||
|
background-color: @bg-col;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* anyrun's ouput matches entries - Base */
|
||||||
|
#match {
|
||||||
|
color: @fg-col;
|
||||||
|
background: @bg-col;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* anyrun's selected entry - Red */
|
||||||
|
#match:selected {
|
||||||
|
color: @fg-col2;
|
||||||
|
background: @selected-col;
|
||||||
|
}
|
||||||
|
|
||||||
|
#match {
|
||||||
|
padding: 3px;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry, #plugin:hover {
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
box#main {
|
||||||
|
background: rgba(30, 30, 46, 0.7);
|
||||||
|
border: 1px solid @border-col;
|
||||||
|
border-radius: 15px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{pkgs, catppuccin-hyprland, ...}: {
|
{pkgs, catppuccin-hyprland, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
./anyrun.nix
|
||||||
./wayland-apps.nix
|
./wayland-apps.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -26,10 +27,9 @@
|
|||||||
# https://github.com/catppuccin/gtk
|
# https://github.com/catppuccin/gtk
|
||||||
name = "Catppuccin-Macchiato-Compact-Pink-dark";
|
name = "Catppuccin-Macchiato-Compact-Pink-dark";
|
||||||
package = pkgs.catppuccin-gtk.override {
|
package = pkgs.catppuccin-gtk.override {
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/data/themes/catppuccin-gtk/default.nix
|
||||||
accents = [ "pink" ];
|
accents = [ "pink" ];
|
||||||
size = "compact";
|
variant = "mocha";
|
||||||
tweaks = [ "rimless" "black" ];
|
|
||||||
variant = "macchiato";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
# color-scheme: cappuccin-mocha
|
# color-scheme: cappuccin-mocha
|
||||||
source=~/.config/hypr/themes/mocha.conf
|
source=~/.config/hypr/themes/mocha.conf
|
||||||
|
|
||||||
|
env = _JAVA_AWT_WM_NONREPARENTING,1
|
||||||
|
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||||
|
|
||||||
#-- Output ----------------------------------------------------
|
#-- Output ----------------------------------------------------
|
||||||
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.
|
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.
|
||||||
|
|
||||||
@@ -109,7 +112,7 @@ $browser = firefox
|
|||||||
# -- Terminal --
|
# -- Terminal --
|
||||||
bind=SUPER,Return,exec,$term
|
bind=SUPER,Return,exec,$term
|
||||||
|
|
||||||
# -- Wofi --
|
# -- App Launcher --
|
||||||
bind=SUPER,D,exec,$app_launcher
|
bind=SUPER,D,exec,$app_launcher
|
||||||
|
|
||||||
# -- Hyprland --
|
# -- Hyprland --
|
||||||
@@ -201,6 +204,10 @@ exec-once=cp ~/.config/fcitx5/profile-bak ~/.config/fcitx5/profile # restore
|
|||||||
exec-once=fcitx5 -d --replace # start fcitx5 daemon
|
exec-once=fcitx5 -d --replace # start fcitx5 daemon
|
||||||
bind=ALT,E,exec,pkill fcitx5 -9;sleep 1;fcitx5 -d --replace; sleep 1;fcitx5-remote -r
|
bind=ALT,E,exec,pkill fcitx5 -9;sleep 1;fcitx5 -d --replace; sleep 1;fcitx5-remote -r
|
||||||
|
|
||||||
|
# fix xwayland apps
|
||||||
|
windowrulev2 = rounding 0, xwayland:1, floating:1
|
||||||
|
windowrulev2 = center, class:^(.*jetbrains.*)$, title:^(Confirm Exit|Open Project|win424|win201|splash)$
|
||||||
|
windowrulev2 = size 640 400, class:^(.*jetbrains.*)$, title:^(splash)$
|
||||||
|
|
||||||
# -- Fix input method in vscode
|
# -- Fix input method in vscode
|
||||||
exec-once = hyprctl setcursor "Bibata-Modern-Ice" 24
|
exec-once = hyprctl setcursor "Bibata-Modern-Ice" 24
|
||||||
@@ -208,6 +215,7 @@ exec-once = hyprctl setcursor "Bibata-Modern-Ice" 24
|
|||||||
# xwayland 窗口先渲染到 200% 再降到 hyprland config 里 monitor 设置的值,看上去和原生没啥区别
|
# xwayland 窗口先渲染到 200% 再降到 hyprland config 里 monitor 设置的值,看上去和原生没啥区别
|
||||||
# 相比较一开始的方案输入法字体大小也正确了.唯一有点问题的可能是 xwayland 窗口下的鼠标指针大小不对
|
# 相比较一开始的方案输入法字体大小也正确了.唯一有点问题的可能是 xwayland 窗口下的鼠标指针大小不对
|
||||||
exec-once = xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2
|
exec-once = xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2
|
||||||
|
|
||||||
exec-once = xrdb -merge ~/.Xresources
|
exec-once = xrdb -merge ~/.Xresources
|
||||||
# env = GDK_SCALE,2
|
# env = GDK_SCALE,2
|
||||||
env = XCURSOR_SIZE,48
|
env = XCURSOR_SIZE,48
|
||||||
|
|||||||
@@ -1,13 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
## launch wofi with alt config
|
if [[ ! $(pidof anyrun) ]]; then
|
||||||
|
anyrun
|
||||||
CONFIG="$HOME/.config/hypr/wofi/config"
|
|
||||||
STYLE="$HOME/.config/hypr/wofi/style.css"
|
|
||||||
COLORS="$HOME/.config/hypr/wofi/colors"
|
|
||||||
|
|
||||||
if [[ ! $(pidof wofi) ]]; then
|
|
||||||
wofi --show drun --prompt 'Search...' --conf ${CONFIG} --style ${STYLE} --color ${COLORS}
|
|
||||||
else
|
else
|
||||||
pkill wofi
|
pkill anyrun
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
#1e1e2e
|
|
||||||
#262636
|
|
||||||
#d9e0ee
|
|
||||||
#89b4fa
|
|
||||||
#f38ba8
|
|
||||||
#cba6f7
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
## Wofi Config
|
|
||||||
|
|
||||||
## General
|
|
||||||
show=drun
|
|
||||||
prompt=Apps
|
|
||||||
normal_window=true
|
|
||||||
layer=top
|
|
||||||
term=alacritty
|
|
||||||
|
|
||||||
## Geometry
|
|
||||||
width=500px
|
|
||||||
height=305px
|
|
||||||
location=0
|
|
||||||
orientation=vertical
|
|
||||||
halign=fill
|
|
||||||
line_wrap=off
|
|
||||||
dynamic_lines=false
|
|
||||||
|
|
||||||
## Images
|
|
||||||
allow_markup=true
|
|
||||||
allow_images=true
|
|
||||||
image_size=24
|
|
||||||
|
|
||||||
## Search
|
|
||||||
exec_search=false
|
|
||||||
hide_search=false
|
|
||||||
parse_search=false
|
|
||||||
insensitive=false
|
|
||||||
|
|
||||||
## Other
|
|
||||||
hide_scroll=true
|
|
||||||
no_actions=true
|
|
||||||
sort_order=default
|
|
||||||
gtk_dark=true
|
|
||||||
filter_rate=100
|
|
||||||
|
|
||||||
## Keys
|
|
||||||
key_expand=Tab
|
|
||||||
key_exit=Escape
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
/** ********** Fonts ********** **/
|
|
||||||
* {
|
|
||||||
font-family: "JetBrains Mono", "Iosevka Nerd Font", sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
background-color: --wofi-color0;
|
|
||||||
color: --wofi-color2;
|
|
||||||
border: 2px solid --wofi-color1;
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#outer-box {
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input {
|
|
||||||
background-color: --wofi-color1;
|
|
||||||
border: 0px solid --wofi-color3;
|
|
||||||
padding: 8px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scroll {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#inner-box {
|
|
||||||
}
|
|
||||||
|
|
||||||
#img {
|
|
||||||
padding-right: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#text {
|
|
||||||
color: --wofi-color2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#text:selected {
|
|
||||||
color: --wofi-color0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry {
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:selected {
|
|
||||||
background-color: --wofi-color3;
|
|
||||||
color: --wofi-color0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#unselected {
|
|
||||||
}
|
|
||||||
|
|
||||||
#selected {
|
|
||||||
}
|
|
||||||
|
|
||||||
#input, #entry:selected {
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
@@ -62,7 +62,6 @@
|
|||||||
slurp # selecting a region to screenshot
|
slurp # selecting a region to screenshot
|
||||||
# TODO replace by `flameshot gui --raw | wl-copy`
|
# TODO replace by `flameshot gui --raw | wl-copy`
|
||||||
|
|
||||||
wofi # A rofi inspired launcher for wlroots compositors such as sway/hyprland
|
|
||||||
mako # the notification daemon, the same as dunst
|
mako # the notification daemon, the same as dunst
|
||||||
|
|
||||||
yad # a fork of zenity, for creating dialogs
|
yad # a fork of zenity, for creating dialogs
|
||||||
|
|||||||
Reference in New Issue
Block a user