FUCK HYPRLAND!!!
This commit is contained in:
parent
02de4d9cb3
commit
5d0a1f59c4
30 changed files with 0 additions and 1616 deletions
|
@ -1,179 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
## Functions, Variables and Launchers ##
|
|
||||||
|
|
||||||
# colorpicker = exec ./scripts/colorpicker.fish;
|
|
||||||
# lockscreen = exec ./scripts/lockscreen.fish;
|
|
||||||
# notify = exec ./scripts/notify.fish;
|
|
||||||
# wlogout = exec ./scripts/wlogout.fish;
|
|
||||||
#gtk-play = "${pkgs.libcanberra-gtk3}/bin/canberra-gtk-play";
|
|
||||||
#makoctl = "${config.services.mako.package}/bin/makoctl";
|
|
||||||
#notify-send = "${pkgs.libnotify}/bin/notify-send";
|
|
||||||
#playerctl = lib.getExe pkgs.playerctl; # installed via /home/common/optional/desktops/playerctl.nix
|
|
||||||
#swaylock = "lib.getExe pkgs.swaylock;
|
|
||||||
|
|
||||||
betterControl = inputs.better-control.packages.${pkgs.system}.better-control;
|
|
||||||
|
|
||||||
defaultApp =
|
|
||||||
type: "${pkgs.gtk3}/bin/gtk-launch $(${pkgs.xdg-utils}/bin/xdg-mime query default ${type})";
|
|
||||||
exec = script: "${pkgs.fish}/bin/fish ${script}";
|
|
||||||
|
|
||||||
files = "${pkgs.nautilus}/bin/nautilus $HOME";
|
|
||||||
browser = defaultApp "x-scheme-handler/https";
|
|
||||||
editor = "code";
|
|
||||||
launcher = "${pkgs.walker}/bin/walker --modules applications,ssh";
|
|
||||||
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
|
||||||
terminal = exec (import ./scripts/terminal.nix { inherit pkgs; });
|
|
||||||
brightness = exec (import ./scripts/brightness.nix { inherit pkgs lib; });
|
|
||||||
|
|
||||||
## Long ass keys ##
|
|
||||||
lowerVol = "XF86AudioLowerVolume";
|
|
||||||
raiseVol = "XF86AudioRaiseVolume";
|
|
||||||
brightUp = "XF86MonBrightnessUp";
|
|
||||||
brightDown = "XF86MonBrightnessDown";
|
|
||||||
|
|
||||||
## Keybinds & Submaps ##
|
|
||||||
|
|
||||||
#INFO: Did this scripts to avoid the shitty hyprland config implementation for nix :)
|
|
||||||
submaps = {
|
|
||||||
## Submap: Reset ##
|
|
||||||
"" = {
|
|
||||||
binds = {
|
|
||||||
## One-Shot Binds ##
|
|
||||||
"" = [
|
|
||||||
## Terminal ##
|
|
||||||
"SUPER, T, exec, ${terminal}"
|
|
||||||
# "SUPER_SHIFT, T, exec, ${terminal}" # Floating
|
|
||||||
# "SUPER_ALT, T, exec, ${terminal}" # Select
|
|
||||||
|
|
||||||
## App Runs ##
|
|
||||||
"SUPER, F, exec, ${files}"
|
|
||||||
"SUPER, E, exec, ${editor}"
|
|
||||||
"SUPER, W, exec, ${browser}"
|
|
||||||
"SUPER, N, exec, nm-connection-editor"
|
|
||||||
|
|
||||||
## Launcher ##
|
|
||||||
"SUPER, SUPER_L, exec, ${launcher}"
|
|
||||||
# "SUPER, SUPER_L, exec, ${launcher} --app launcher"
|
|
||||||
# "SUPER, P, exec, ${launcher} --app color" # Color Picker
|
|
||||||
# "SUPER, V, exec, ${launcher} --app clip" # Clipboard
|
|
||||||
# "SUPER, X, exec, ${launcher} --app power" # Power Menu
|
|
||||||
"SUPER, X, exec, ${lib.getExe betterControl} -pm" # Power Menu
|
|
||||||
|
|
||||||
## System ##
|
|
||||||
"SUPER, L, exec, hyprlock"
|
|
||||||
# "SUPER, L, exec, ${lockscreen}"
|
|
||||||
"SUPER, Q, killactive,"
|
|
||||||
"CTRL_ALT, Delete, exec, uwsm stop"
|
|
||||||
", ${brightUp}, exec, ${brightness} + 10"
|
|
||||||
", ${brightDown}, exec, ${brightness} - 10"
|
|
||||||
|
|
||||||
## Window Management ##
|
|
||||||
"SUPER_SHIFT, F, fullscreen, 0"
|
|
||||||
"SUPER_ALT, F, fullscreenstate, 0 3"
|
|
||||||
# "SUPER, F, exec, ${notify} 'Fullscreen Mode'"
|
|
||||||
"SUPER, Backspace, togglefloating,"
|
|
||||||
"SUPER, Backspace, centerwindow,"
|
|
||||||
"SUPER, left, scroller:movefocus, l"
|
|
||||||
"SUPER, right, scroller:movefocus, r"
|
|
||||||
"SUPER, up, scroller:movefocus, u"
|
|
||||||
"SUPER, down, scroller:movefocus, d"
|
|
||||||
"SUPER_SHIFT, left, scroller:movewindow, l, nomode"
|
|
||||||
"SUPER_SHIFT, right, scroller:movewindow, r, nomode"
|
|
||||||
"SUPER_SHIFT, up, scroller:movewindow, u, nomode"
|
|
||||||
"SUPER_SHIFT, down, scroller:movewindow, d, nomode"
|
|
||||||
"SUPER_SHIFT, P, pin,"
|
|
||||||
# "SUPER_SHIFT, P, exec, ${notify} 'Toggled Pin'"
|
|
||||||
"SUPER_SHIFT, S, swapnext"
|
|
||||||
# "SUPER_SHIFT, O, toggleopaque"
|
|
||||||
"SUPER, G, togglegroup"
|
|
||||||
# "SUPER, G, exec, ${notify} 'Toggled Group'"
|
|
||||||
"SUPER, Tab, changegroupactive, f"
|
|
||||||
|
|
||||||
# ## Workspaces ##
|
|
||||||
# ", Home, hyprexpo:expo, toggle"
|
|
||||||
", Home, overview:toggle"
|
|
||||||
"ALT, Tab, cyclenext,"
|
|
||||||
"ALT, Tab, bringactivetotop,"
|
|
||||||
"SUPER, 1, workspace, 1"
|
|
||||||
"SUPER, 2, workspace, 2"
|
|
||||||
"SUPER, 3, workspace, 3"
|
|
||||||
"SUPER, 4, workspace, 4"
|
|
||||||
"SUPER_ALT, G, exec, ${steam-map} on ${monitors-json}"
|
|
||||||
|
|
||||||
## Scroller ##
|
|
||||||
"SUPER, P, scroller:pin"
|
|
||||||
"SUPER, P, scroller:alignwindow, left"
|
|
||||||
"SUPER, P, scroller:setsize, onethird"
|
|
||||||
# "\\notify"
|
|
||||||
"SUPER_SHIFT, P, scroller:pin"
|
|
||||||
"SUPER_SHIFT, P, scroller:alignwindow, right"
|
|
||||||
"SUPER_SHIFT, P, scroller:setsize, onethird"
|
|
||||||
# "\\notify"
|
|
||||||
"SUPER, A, scroller:jump"
|
|
||||||
# F20 - F23
|
|
||||||
", code:198, scroller:selectiontoggle"
|
|
||||||
", code:199, scroller:selectionworkspace"
|
|
||||||
", code:200, scroller:selectionmove, e"
|
|
||||||
", code:201, scroller:selectionreset"
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
## Repeating Binds ##
|
|
||||||
e = [
|
|
||||||
"SUPER_ALT, left, scroller:cyclewidth, next"
|
|
||||||
"SUPER_ALT, right, scroller:cyclewidth, prev"
|
|
||||||
"SUPER_ALT, up, scroller:cycleheight, next"
|
|
||||||
"SUPER_ALT, down, scroller:cycleheight, prev"
|
|
||||||
# "SUPER_ALT, left, resizeactive, -20 0"
|
|
||||||
# "SUPER_ALT, right, resizeactive, 20 0"
|
|
||||||
# "SUPER_ALT, up, resizeactive, 0 -20"
|
|
||||||
# "SUPER_ALT, down, resizeactive, 0 20"
|
|
||||||
", ${raiseVol}, exec, ${pactl} set-sink-volume @DEFAULT_SINK@ +5%"
|
|
||||||
", ${lowerVol}, exec, ${pactl} set-sink-volume @DEFAULT_SINK@ -5%"
|
|
||||||
", ${raiseVol}, exec, ${pactl} set-source-volume @DEFAULT_SOURCE@ +5%"
|
|
||||||
", ${lowerVol}, exec, ${pactl} set-source-volume @DEFAULT_SOURCE@ -5%"
|
|
||||||
];
|
|
||||||
|
|
||||||
## Mouse Binds ##
|
|
||||||
m = [
|
|
||||||
", mouse:275, movewindow"
|
|
||||||
", mouse:276, resizewindow"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
## Submap: Steam ##
|
|
||||||
steam = {
|
|
||||||
binds = {
|
|
||||||
"" = [
|
|
||||||
"SUPER, Escape, exec, ${steam-map} off ${monitors-json}"
|
|
||||||
];
|
|
||||||
n = [
|
|
||||||
"SUPER, SUPER_L, pass"
|
|
||||||
", mouse:275, pass"
|
|
||||||
", mouse:276, pass"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
steam-map = import ./scripts/steam-map.nix { inherit pkgs; };
|
|
||||||
monitors-json = pkgs.writeText "monitors.json" (builtins.toJSON config.monitors);
|
|
||||||
|
|
||||||
submaps-script = import ./scripts/submaps.nix { inherit pkgs; };
|
|
||||||
submaps-json = pkgs.writeText "submaps.json" (builtins.toJSON submaps);
|
|
||||||
submaps-run = pkgs.runCommand "submaps-run" { inherit submaps-json submaps-script; } ''
|
|
||||||
mkdir -p $out
|
|
||||||
${pkgs.fish}/bin/fish ${submaps-script} ${submaps-json} > $out/submaps-out
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland.extraConfig = builtins.readFile "${submaps-run}/submaps-out";
|
|
||||||
}
|
|
|
@ -1,190 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
systemd.enable = false; # using withUWSM
|
|
||||||
package = null;
|
|
||||||
portalPackage = null;
|
|
||||||
|
|
||||||
# systemd = {
|
|
||||||
# enable = true;
|
|
||||||
# variables = [ "--all" ];
|
|
||||||
# extraCommands = lib.mkBefore [
|
|
||||||
# "systemctl --user stop graphical-session.target"
|
|
||||||
# "systemctl --user start hyprland-session.target"
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
## Environment Vars ##
|
|
||||||
env = [
|
|
||||||
"NIXOS_XDG_OPEN_USE_PORTAL, 1" # for xdg-open to use portal
|
|
||||||
"NIXOS_OZONE_WL, 1" # for ozone-based and electron apps to run on wayland
|
|
||||||
"MOZ_ENABLE_WAYLAND, 1" # for firefox to run on wayland
|
|
||||||
"MOZ_WEBRENDER, 1" # for firefox to run on wayland
|
|
||||||
"XDG_SESSION_TYPE, wayland"
|
|
||||||
"XDG_SESSION_DESKTOP, Hyprland"
|
|
||||||
"XDG_CURRENT_DESKTOP, Hyprland"
|
|
||||||
"WLR_NO_HARDWARE_CURSORS, 1"
|
|
||||||
"WLR_RENDERER_ALLOW_SOFTWARE, 1"
|
|
||||||
"QT_QPA_PLATFORM, wayland"
|
|
||||||
"GTK_USE_PORTAL, 1"
|
|
||||||
"HYPRCURSOR_THEME, rose-pine-hyprcursor" # this will be better than default for now
|
|
||||||
];
|
|
||||||
|
|
||||||
xwayland = {
|
|
||||||
force_zero_scaling = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
## Monitor ##
|
|
||||||
|
|
||||||
monitor = (
|
|
||||||
# INFO: parse the monitors defined in home/<user>/<host>/default.nix
|
|
||||||
map (
|
|
||||||
m:
|
|
||||||
"${m.name},${
|
|
||||||
if m.enabled then
|
|
||||||
"${toString m.width}x${toString m.height}@${toString m.refreshRate},${toString m.x}x${toString m.y},${toString m.scale},transform,${toString m.transform},vrr,${toString m.vrr}"
|
|
||||||
else
|
|
||||||
"disable"
|
|
||||||
}"
|
|
||||||
) (config.monitors)
|
|
||||||
);
|
|
||||||
|
|
||||||
# This used to be usefull now its just overkill
|
|
||||||
# Creates 1 persistent workspaces for all monitors
|
|
||||||
workspace =
|
|
||||||
let
|
|
||||||
json = pkgs.writeTextFile {
|
|
||||||
name = "monitors.json";
|
|
||||||
text = builtins.toJSON config.monitors;
|
|
||||||
};
|
|
||||||
parse = pkgs.runCommand "parse-workspaces" { } ''
|
|
||||||
mkdir "$out"; ${pkgs.jq}/bin/jq -r '
|
|
||||||
[ to_entries[] |
|
|
||||||
(.key as $i | .value.name as $name |
|
|
||||||
[ range(1;2) | ($i * 1 + .) as $wsnum |
|
|
||||||
if . == 0 then "\($wsnum), monitor:\($name), default:true, persistent:true"
|
|
||||||
else "\($wsnum), monitor:\($name)" end
|
|
||||||
]
|
|
||||||
)
|
|
||||||
] | flatten
|
|
||||||
' ${json} > "$out/out.json"
|
|
||||||
'';
|
|
||||||
output = builtins.fromJSON (builtins.readFile "${parse}/out.json");
|
|
||||||
in
|
|
||||||
output;
|
|
||||||
|
|
||||||
## Behavior ##
|
|
||||||
|
|
||||||
binds = {
|
|
||||||
workspace_center_on = 1;
|
|
||||||
movefocus_cycles_fullscreen = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
input = {
|
|
||||||
follow_mouse = 2;
|
|
||||||
mouse_refocus = false;
|
|
||||||
kb_options = "fkeys:basic_13-24";
|
|
||||||
sensitivity = 0.5;
|
|
||||||
};
|
|
||||||
|
|
||||||
cursor = {
|
|
||||||
inactive_timeout = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
animate_manual_resizes = true;
|
|
||||||
animate_mouse_windowdragging = true;
|
|
||||||
#disable_autoreload = true;
|
|
||||||
new_window_takes_over_fullscreen = 2;
|
|
||||||
middle_click_paste = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
group = {
|
|
||||||
drag_into_group = 2;
|
|
||||||
merge_groups_on_drag = true;
|
|
||||||
# col.border_active = "";
|
|
||||||
# col.border_inactive = "";
|
|
||||||
groupbar = {
|
|
||||||
enabled = true;
|
|
||||||
height = 12;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
pseudotile = false;
|
|
||||||
force_split = 0;
|
|
||||||
smart_split = true;
|
|
||||||
split_bias = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
## Appearance ##
|
|
||||||
|
|
||||||
general = {
|
|
||||||
layout = "scroller";
|
|
||||||
border_size = 2;
|
|
||||||
gaps_in = 6;
|
|
||||||
gaps_out = 6;
|
|
||||||
# "col.inactive_border" = "rgb(191b1c)";
|
|
||||||
# "col.active_border" = "rgb(1cbdd9) rgb(f6ef9d) 30deg";
|
|
||||||
allow_tearing = true; # used to reduce latency and/or jitter in games
|
|
||||||
snap = {
|
|
||||||
enabled = true;
|
|
||||||
window_gap = 6;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
rounding = 10;
|
|
||||||
rounding_power = 4.0;
|
|
||||||
active_opacity = 0.85;
|
|
||||||
inactive_opacity = 0.75;
|
|
||||||
fullscreen_opacity = 1.0;
|
|
||||||
dim_inactive = true;
|
|
||||||
dim_strength = 0.2;
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
size = 7;
|
|
||||||
passes = 3;
|
|
||||||
new_optimizations = true;
|
|
||||||
ignore_opacity = true;
|
|
||||||
xray = true;
|
|
||||||
# noise = 0.15;
|
|
||||||
popups = true;
|
|
||||||
};
|
|
||||||
shadow = {
|
|
||||||
enabled = true;
|
|
||||||
range = 30;
|
|
||||||
render_power = 2;
|
|
||||||
scale = 1.5;
|
|
||||||
# color = "rgb(191b1c)";
|
|
||||||
# color_inactive = "rgb(191b1c)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
animation = [
|
|
||||||
"windowsIn, 1, 5 ,default, popin 0%"
|
|
||||||
"windowsOut, 1, 5 ,default, popin"
|
|
||||||
"windowsMove, 1, 5 ,default, slide"
|
|
||||||
"fadeIn, 1, 8 ,default"
|
|
||||||
"fadeOut, 1, 8 ,default"
|
|
||||||
"fadeSwitch, 1, 8 ,default"
|
|
||||||
"fadeShadow, 1, 8 ,default"
|
|
||||||
"fadeDim, 1, 8 ,default"
|
|
||||||
"border, 1, 10 ,default"
|
|
||||||
"workspaces, 1, 5 ,default, slide"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
{ pkgs, inputs, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
home.packages = [
|
|
||||||
# pkgs.hyprlandPlugins.hyprexpo
|
|
||||||
pkgs.hyprlandPlugins.hyprspace
|
|
||||||
pkgs.hyprlandPlugins.hyprscroller
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
plugins = [
|
|
||||||
# pkgs.hyprlandPlugins.hyprexpo
|
|
||||||
pkgs.hyprlandPlugins.hyprspace
|
|
||||||
pkgs.hyprlandPlugins.hyprscroller
|
|
||||||
];
|
|
||||||
|
|
||||||
# TODO: Colors and Theme
|
|
||||||
settings = {
|
|
||||||
windowrulev2 = [
|
|
||||||
"bordercolor rgb(191b1c) rgb(ffffff) 25deg, tag: scroller:pinned"
|
|
||||||
];
|
|
||||||
|
|
||||||
plugin = {
|
|
||||||
# hyprexpo = {
|
|
||||||
# columns = 3;
|
|
||||||
# gap_size = 5;
|
|
||||||
# bg_col = "rgb(000000)";
|
|
||||||
# workspace_method = "center current"; # [center/first] [workspace] e.g. first 1 or center m+1
|
|
||||||
# };
|
|
||||||
overview = {
|
|
||||||
centerAligned = true;
|
|
||||||
hideOverlayLayers = true;
|
|
||||||
showSpecialWorkspaces = true;
|
|
||||||
};
|
|
||||||
scroller = {
|
|
||||||
mode = "row";
|
|
||||||
center_active_column = true;
|
|
||||||
center_active_window = false;
|
|
||||||
focus_wrap = true;
|
|
||||||
overview_scale_content = false;
|
|
||||||
"col.selection_border" = "rgb(191b1c)";
|
|
||||||
jump_labels_font = "Monocraft";
|
|
||||||
jump_labels_color = "rgb(ffffff)";
|
|
||||||
jump_labels_scale = "0.1";
|
|
||||||
jump_labels_keys = "qwfpgarstd";
|
|
||||||
# monitor_options = ''
|
|
||||||
# (
|
|
||||||
# DP-1 = (
|
|
||||||
# mode = row;
|
|
||||||
# column_default_width = onehalf;
|
|
||||||
# column_widths = onehalf onethird twothirds threefourths;
|
|
||||||
# window_default_height = seveneighths;
|
|
||||||
# window_heights = seveneighths onehalf onethird twothirds
|
|
||||||
# ),
|
|
||||||
# HDMI-A-2 = (
|
|
||||||
# mode = col;
|
|
||||||
# column_default_width = one;
|
|
||||||
# column_widths = one onehalf;
|
|
||||||
# window_default_height = twothirds;
|
|
||||||
# window_heights = seveneighths onehalf onethird twothirds
|
|
||||||
# ),
|
|
||||||
# )'';
|
|
||||||
monitor_options = "(DP-1 = (mode = row;column_default_width = onehalf;column_widths = seveneighths threequarters twothirds onehalf onethird;window_default_height = one;window_heights = one seveneighths twothirds onehalf onethird),HDMI-A-2 = (mode = col; column_default_width = one;column_widths = one onehalf;window_default_height = twothirds;window_heights = seveneighths twothirds onehalf onethird),)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
programs.hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
disable_loading_bar = true;
|
|
||||||
immediate_render = true;
|
|
||||||
hide_cursor = false;
|
|
||||||
no_fade_in = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
background = lib.mkDefault [
|
|
||||||
{
|
|
||||||
path = "screenshot";
|
|
||||||
blur_passes = 3;
|
|
||||||
blur_size = 8;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
input-field = lib.mkDefault [
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
shadow_passes = 2;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,248 +0,0 @@
|
||||||
app_launch_prefix = ""
|
|
||||||
terminal_title_flag = ""
|
|
||||||
locale = ""
|
|
||||||
close_when_open = false
|
|
||||||
theme = "default"
|
|
||||||
monitor = ""
|
|
||||||
hotreload_theme = false
|
|
||||||
as_window = false
|
|
||||||
timeout = 0
|
|
||||||
disable_click_to_close = false
|
|
||||||
force_keyboard_focus = true
|
|
||||||
|
|
||||||
[keys]
|
|
||||||
accept_typeahead = ["tab"]
|
|
||||||
trigger_labels = "lalt"
|
|
||||||
next = ["down"]
|
|
||||||
prev = ["up"]
|
|
||||||
close = ["esc"]
|
|
||||||
remove_from_history = ["shift backspace"]
|
|
||||||
resume_query = ["ctrl r"]
|
|
||||||
toggle_exact_search = ["ctrl m"]
|
|
||||||
|
|
||||||
[keys.activation_modifiers]
|
|
||||||
keep_open = "shift"
|
|
||||||
alternate = "alt"
|
|
||||||
|
|
||||||
[keys.ai]
|
|
||||||
clear_session = ["ctrl x"]
|
|
||||||
copy_last_response = ["ctrl c"]
|
|
||||||
resume_session = ["ctrl r"]
|
|
||||||
run_last_response = ["ctrl e"]
|
|
||||||
|
|
||||||
[events]
|
|
||||||
on_activate = ""
|
|
||||||
on_selection = ""
|
|
||||||
on_exit = ""
|
|
||||||
on_launch = ""
|
|
||||||
on_query_change = ""
|
|
||||||
|
|
||||||
[list]
|
|
||||||
dynamic_sub = true
|
|
||||||
keyboard_scroll_style = "emacs"
|
|
||||||
max_entries = 50
|
|
||||||
show_initial_entries = true
|
|
||||||
single_click = true
|
|
||||||
visibility_threshold = 20
|
|
||||||
placeholder = "No Results"
|
|
||||||
|
|
||||||
[search]
|
|
||||||
argument_delimiter = "#"
|
|
||||||
placeholder = "Search..."
|
|
||||||
delay = 0
|
|
||||||
resume_last_query = false
|
|
||||||
|
|
||||||
[activation_mode]
|
|
||||||
labels = "jkl;asdf"
|
|
||||||
|
|
||||||
[builtins.applications]
|
|
||||||
weight = 5
|
|
||||||
name = "applications"
|
|
||||||
placeholder = "Applications"
|
|
||||||
prioritize_new = true
|
|
||||||
hide_actions_with_empty_query = true
|
|
||||||
context_aware = true
|
|
||||||
refresh = true
|
|
||||||
show_sub_when_single = true
|
|
||||||
show_icon_when_single = true
|
|
||||||
show_generic = true
|
|
||||||
history = true
|
|
||||||
|
|
||||||
[builtins.applications.actions]
|
|
||||||
enabled = true
|
|
||||||
hide_category = false
|
|
||||||
hide_without_query = true
|
|
||||||
|
|
||||||
[builtins.bookmarks]
|
|
||||||
weight = 5
|
|
||||||
placeholder = "Bookmarks"
|
|
||||||
name = "bookmarks"
|
|
||||||
icon = "bookmark"
|
|
||||||
switcher_only = true
|
|
||||||
|
|
||||||
[[builtins.bookmarks.entries]]
|
|
||||||
label = "Walker"
|
|
||||||
url = "https://github.com/abenz1267/walker"
|
|
||||||
keywords = ["walker", "github"]
|
|
||||||
|
|
||||||
[builtins.xdph_picker]
|
|
||||||
hidden = true
|
|
||||||
weight = 5
|
|
||||||
placeholder = "Screen/Window Picker"
|
|
||||||
show_sub_when_single = true
|
|
||||||
name = "xdphpicker"
|
|
||||||
switcher_only = true
|
|
||||||
|
|
||||||
[builtins.ai]
|
|
||||||
weight = 5
|
|
||||||
placeholder = "AI"
|
|
||||||
name = "ai"
|
|
||||||
icon = "help-browser"
|
|
||||||
switcher_only = true
|
|
||||||
|
|
||||||
[[builtins.ai.anthropic.prompts]]
|
|
||||||
model = "claude-3-5-sonnet-20241022"
|
|
||||||
temperature = 1
|
|
||||||
max_tokens = 1_000
|
|
||||||
label = "General Assistant"
|
|
||||||
prompt = "You are a helpful general assistant. Keep your answers short and precise."
|
|
||||||
|
|
||||||
[builtins.calc]
|
|
||||||
require_number = true
|
|
||||||
weight = 5
|
|
||||||
name = "calc"
|
|
||||||
icon = "accessories-calculator"
|
|
||||||
placeholder = "Calculator"
|
|
||||||
min_chars = 4
|
|
||||||
|
|
||||||
[builtins.windows]
|
|
||||||
weight = 5
|
|
||||||
icon = "view-restore"
|
|
||||||
name = "windows"
|
|
||||||
placeholder = "Windows"
|
|
||||||
show_icon_when_single = true
|
|
||||||
|
|
||||||
[builtins.clipboard]
|
|
||||||
always_put_new_on_top = true
|
|
||||||
exec = "wl-copy"
|
|
||||||
weight = 5
|
|
||||||
name = "clipboard"
|
|
||||||
avoid_line_breaks = true
|
|
||||||
placeholder = "Clipboard"
|
|
||||||
image_height = 300
|
|
||||||
max_entries = 10
|
|
||||||
switcher_only = true
|
|
||||||
|
|
||||||
[builtins.commands]
|
|
||||||
weight = 5
|
|
||||||
icon = "utilities-terminal"
|
|
||||||
switcher_only = true
|
|
||||||
name = "commands"
|
|
||||||
placeholder = "Commands"
|
|
||||||
|
|
||||||
[builtins.custom_commands]
|
|
||||||
weight = 5
|
|
||||||
icon = "utilities-terminal"
|
|
||||||
name = "custom_commands"
|
|
||||||
placeholder = "Custom Commands"
|
|
||||||
|
|
||||||
[builtins.emojis]
|
|
||||||
exec = "wl-copy"
|
|
||||||
weight = 5
|
|
||||||
name = "emojis"
|
|
||||||
placeholder = "Emojis"
|
|
||||||
switcher_only = true
|
|
||||||
history = true
|
|
||||||
typeahead = true
|
|
||||||
show_unqualified = false
|
|
||||||
|
|
||||||
[builtins.symbols]
|
|
||||||
after_copy = ""
|
|
||||||
weight = 5
|
|
||||||
name = "symbols"
|
|
||||||
placeholder = "Symbols"
|
|
||||||
switcher_only = true
|
|
||||||
history = true
|
|
||||||
typeahead = true
|
|
||||||
|
|
||||||
[builtins.finder]
|
|
||||||
use_fd = false
|
|
||||||
weight = 5
|
|
||||||
icon = "file"
|
|
||||||
name = "finder"
|
|
||||||
placeholder = "Finder"
|
|
||||||
switcher_only = true
|
|
||||||
ignore_gitignore = true
|
|
||||||
refresh = true
|
|
||||||
concurrency = 8
|
|
||||||
show_icon_when_single = true
|
|
||||||
preview_images = false
|
|
||||||
|
|
||||||
[builtins.runner]
|
|
||||||
eager_loading = true
|
|
||||||
weight = 5
|
|
||||||
icon = "utilities-terminal"
|
|
||||||
name = "runner"
|
|
||||||
placeholder = "Runner"
|
|
||||||
typeahead = true
|
|
||||||
history = true
|
|
||||||
generic_entry = false
|
|
||||||
refresh = true
|
|
||||||
use_fd = false
|
|
||||||
|
|
||||||
[builtins.ssh]
|
|
||||||
weight = 5
|
|
||||||
icon = "preferences-system-network"
|
|
||||||
name = "ssh"
|
|
||||||
placeholder = "SSH"
|
|
||||||
switcher_only = true
|
|
||||||
history = true
|
|
||||||
refresh = true
|
|
||||||
|
|
||||||
[builtins.switcher]
|
|
||||||
weight = 5
|
|
||||||
name = "switcher"
|
|
||||||
placeholder = "Switcher"
|
|
||||||
prefix = "/"
|
|
||||||
|
|
||||||
[builtins.websearch]
|
|
||||||
keep_selection = true
|
|
||||||
weight = 5
|
|
||||||
icon = "applications-internet"
|
|
||||||
name = "websearch"
|
|
||||||
placeholder = "Websearch"
|
|
||||||
|
|
||||||
[[builtins.websearch.entries]]
|
|
||||||
name = "Google"
|
|
||||||
url = "https://www.google.com/search?q=%TERM%"
|
|
||||||
|
|
||||||
[[builtins.websearch.entries]]
|
|
||||||
name = "DuckDuckGo"
|
|
||||||
url = "https://duckduckgo.com/?q=%TERM%"
|
|
||||||
switcher_only = true
|
|
||||||
|
|
||||||
[[builtins.websearch.entries]]
|
|
||||||
name = "Ecosia"
|
|
||||||
url = "https://www.ecosia.org/search?q=%TERM%"
|
|
||||||
switcher_only = true
|
|
||||||
|
|
||||||
[[builtins.websearch.entries]]
|
|
||||||
name = "Yandex"
|
|
||||||
url = "https://yandex.com/search/?text=%TERM%"
|
|
||||||
switcher_only = true
|
|
||||||
|
|
||||||
[builtins.dmenu]
|
|
||||||
hidden = true
|
|
||||||
weight = 5
|
|
||||||
name = "dmenu"
|
|
||||||
placeholder = "Dmenu"
|
|
||||||
switcher_only = true
|
|
||||||
|
|
||||||
[builtins.translation]
|
|
||||||
delay = 1000
|
|
||||||
weight = 5
|
|
||||||
name = "translation"
|
|
||||||
icon = "accessories-dictionary"
|
|
||||||
placeholder = "Translation"
|
|
||||||
switcher_only = true
|
|
||||||
provider = "googlefree"
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.packages = [ pkgs.walker ];
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings.exec-once = [
|
|
||||||
''walker --gapplication-service''
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file."~/.config/walker/config.toml" = {
|
|
||||||
source = ./config.toml;
|
|
||||||
target = ".config/walker/config.toml";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ pkgs, inputs, ... }:
|
|
||||||
{
|
|
||||||
home.packages = [
|
|
||||||
inputs.watershot.packages.${pkgs.system}.default
|
|
||||||
pkgs.grim
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file.".config/watershot.ron" = {
|
|
||||||
source = ./watershot.ron;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
Config(
|
|
||||||
handle_radius: 10,
|
|
||||||
line_width: 2,
|
|
||||||
display_highlight_width: 5,
|
|
||||||
selection_color: Color(
|
|
||||||
r: 0.38,
|
|
||||||
g: 0.68,
|
|
||||||
b: 0.94,
|
|
||||||
a: 1.0,
|
|
||||||
),
|
|
||||||
shade_color: Color(
|
|
||||||
r: 0.11,
|
|
||||||
g: 0.0,
|
|
||||||
b: 0.11,
|
|
||||||
a: 0.6,
|
|
||||||
),
|
|
||||||
text_color: Color(
|
|
||||||
r: 1.0,
|
|
||||||
g: 1.0,
|
|
||||||
b: 1.0,
|
|
||||||
a: 1.0,
|
|
||||||
),
|
|
||||||
mode_text_size: 50,
|
|
||||||
font_family: "monospace",
|
|
||||||
)
|
|
|
@ -1,134 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
# Zen extensions to float
|
|
||||||
zen-script = import ./scripts/zen-float.nix { inherit pkgs; };
|
|
||||||
zen-json = pkgs.writeText "zen-extensions.json" (builtins.toJSON zen-extensions);
|
|
||||||
zen-extensions = {
|
|
||||||
bitwarden = {
|
|
||||||
regex = "'*(Bitwarden Password Manager) - Bitwarden*'";
|
|
||||||
x = 500;
|
|
||||||
y = 900;
|
|
||||||
};
|
|
||||||
authenticator = {
|
|
||||||
regex = "'*(Authenticator) - Authenticator*'";
|
|
||||||
x = 335;
|
|
||||||
y = 525;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
|
|
||||||
# Floats zen extensions
|
|
||||||
exec-once = [
|
|
||||||
"${pkgs.fish}/bin/fish ${zen-script} ${zen-json}"
|
|
||||||
];
|
|
||||||
|
|
||||||
## Layers Rules ##
|
|
||||||
|
|
||||||
layer = [
|
|
||||||
#"blur, rofi"
|
|
||||||
#"ignorezero, rofi"
|
|
||||||
#"ignorezero, logout_dialog"
|
|
||||||
];
|
|
||||||
|
|
||||||
## Window Rules ##
|
|
||||||
|
|
||||||
windowrulev2 = [
|
|
||||||
# Dialogs
|
|
||||||
"float, title:^(Open File)(.*)$"
|
|
||||||
"float, title:^(Select a File)(.*)$"
|
|
||||||
"float, title:^(Choose wallpaper)(.*)$"
|
|
||||||
"float, title:^(Open Folder)(.*)$"
|
|
||||||
"float, title:^(Save As)(.*)$"
|
|
||||||
"float, title:^(Library)(.*)$"
|
|
||||||
"float, title:^(Accounts)(.*)$"
|
|
||||||
"float, title:^(Media viewer)$"
|
|
||||||
|
|
||||||
# Zen
|
|
||||||
"suppressevent maximize, class:^(zen)$"
|
|
||||||
"float, initialTitle:^(Picture-in-Picture)$"
|
|
||||||
"nodim, initialTitle:^(Picture-in-Picture)$"
|
|
||||||
"keepaspectratio, initialTitle:^(Picture-in-Picture)$"
|
|
||||||
"float, class:^(zen)$, title:^(File Upload)$"
|
|
||||||
"workspace special silent, title:^(Zen — Sharing Indicator)$"
|
|
||||||
"workspace special silent, title:^(.*is sharing (your screen|a window)\.)$"
|
|
||||||
|
|
||||||
# Foot
|
|
||||||
"plugin:scroller:modemodifier col after focus, class:^(foot)$"
|
|
||||||
"plugin:scroller:windowheight onethird, class:^(foot)$"
|
|
||||||
|
|
||||||
# Vesktop
|
|
||||||
"workspace 2, class:^(vesktop)$"
|
|
||||||
"plugin:scroller:group vesktop, class:^(vesktop)$"
|
|
||||||
"opaque, initialTitle:^(Discord Popout)$"
|
|
||||||
"plugin:scroller:modemodifier row before focus, initialTitle:^(Discord Popout)$"
|
|
||||||
"plugin:scroller:windowheight onethird, initialTitle:^(Discord Popout)$"
|
|
||||||
|
|
||||||
# VsCode
|
|
||||||
"plugin:scroller:group code, class:^(code)$"
|
|
||||||
"plugin:scroller:alignwindow center, class:^(code)$"
|
|
||||||
"plugin:scroller:windowheight seveneighths, class:^(code)$"
|
|
||||||
|
|
||||||
# Float Apps
|
|
||||||
"float, class:^(galculator)$"
|
|
||||||
"float, class:^(waypaper)$"
|
|
||||||
"float, class:^(keymapp)$"
|
|
||||||
|
|
||||||
# Nautilus
|
|
||||||
"float, initialClass:^(org.gnome.Nautilus)$"
|
|
||||||
"float, initialClass:^(org.gnome.Nautilus)$, move 10% 50%"
|
|
||||||
"size 30% 30%, initialClass:^(org.gnome.Nautilus)$"
|
|
||||||
|
|
||||||
# Always opaque
|
|
||||||
"opaque, class:^([Gg]imp)$"
|
|
||||||
"opaque, class:^([Ff]lameshot)$"
|
|
||||||
"opaque, class:^([Ii]nkscape)$"
|
|
||||||
"opaque, class:^([Bb]lender)$"
|
|
||||||
"opaque, class:^([Oo][Bb][Ss])$"
|
|
||||||
"opaque, class:^([Vv]lc)$"
|
|
||||||
|
|
||||||
# Remove transparency from video
|
|
||||||
"opaque, title:^(Netflix)(.*)$"
|
|
||||||
"opaque, title:^(.*YouTube.*)$"
|
|
||||||
|
|
||||||
## Scratch rules ##
|
|
||||||
#"size 80% 85%, workspace:^(special:special)$"
|
|
||||||
#"center, workspace:^(special:special)$"
|
|
||||||
|
|
||||||
#Ryujinx
|
|
||||||
"opaque, initialClass:^(Ryujinx)$"
|
|
||||||
"immediate, initialClass:^(Ryujinx)$"
|
|
||||||
"workspace 3, initialClass:^(Ryujinx)$"
|
|
||||||
"float, initialTitle:^(ContentDialogOverlayWindow)$"
|
|
||||||
"center, initialTitle:^(ContentDialogOverlayWindow)$"
|
|
||||||
|
|
||||||
## Steam rules ##
|
|
||||||
"opaque, initialClass:^([Gg]amescope)$"
|
|
||||||
# "stayfocused, initialClass:^([Gg]amescope)$"
|
|
||||||
"fullscreen, initialClass:^([Gg]amescope)$"
|
|
||||||
"minsize 1 1, initialClass:^([Gg]amescope)$"
|
|
||||||
"immediate, initialClass:^([Gg]amescope)$"
|
|
||||||
"workspace 3, initialClass:^([Gg]amescope)$"
|
|
||||||
|
|
||||||
#
|
|
||||||
# ========== Fameshot rules ==========
|
|
||||||
#
|
|
||||||
# flameshot currently doesn't have great wayland support so needs some tweaks
|
|
||||||
#"rounding 0, class:^([Ff]lameshot)$"
|
|
||||||
#"noborder, class:^([Ff]lameshot)$"
|
|
||||||
#"float, class:^([Ff]lameshot)$"
|
|
||||||
#"move 0 0, class:^([Ff]lameshot)$"
|
|
||||||
#"suppressevent fullscreen, class:^([Ff]lameshot)$"
|
|
||||||
# "monitor:DP-1, ${flameshot}"
|
|
||||||
|
|
||||||
## Workspace Assignments ##
|
|
||||||
"workspace 2, initialClass:^(spotify)$"
|
|
||||||
"workspace 2, initialClass:^(org.telegram.desktop)$"
|
|
||||||
# "workspace name:4, initialClass:^(virt-manager)$"
|
|
||||||
|
|
||||||
# "workspace 8, class:^(obsidian)$"
|
|
||||||
# "workspace 9, class:^(brave-browser)$"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
{ pkgs, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
# Define your I2C bus numbers
|
|
||||||
# Couldnt find a non hardcoded way to get the bus numbers :(
|
|
||||||
busesList = [
|
|
||||||
6
|
|
||||||
9
|
|
||||||
];
|
|
||||||
busesStr = lib.concatStringsSep " " (map toString busesList);
|
|
||||||
in
|
|
||||||
|
|
||||||
pkgs.writeScript "brightness-control" ''
|
|
||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
# Usage:
|
|
||||||
# brightness-control --up 10
|
|
||||||
# brightness-control + 10
|
|
||||||
# brightness-control --down 15
|
|
||||||
# brightness-control - 15
|
|
||||||
|
|
||||||
if test (count $argv) -ne 2
|
|
||||||
echo "Usage: $argv[0] [--up|+|--down|-] <INTEGER>"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set option $argv[1]
|
|
||||||
set value $argv[2]
|
|
||||||
|
|
||||||
if test "$option" = "--up" -o "$option" = "+"
|
|
||||||
set op "+"
|
|
||||||
else if test "$option" = "--down" -o "$option" = "-"
|
|
||||||
set op "-"
|
|
||||||
else
|
|
||||||
echo "Invalid option. Use --up | + or --down | -"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
# Hard-coded bus list:
|
|
||||||
set buses ${busesStr}
|
|
||||||
|
|
||||||
for bus in $buses
|
|
||||||
echo "Changing brightness on bus $bus: ddcutil setvcp 10 $op $value --bus $bus"
|
|
||||||
${pkgs.ddcutil}/bin/ddcutil setvcp 10 $op $value --bus $bus
|
|
||||||
end
|
|
||||||
''
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
# :D
|
|
||||||
}
|
|
|
@ -1,55 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
pkgs.writeScript "steam-map" ''
|
|
||||||
#!/usr/bin/env fish
|
|
||||||
# Usage: ./steam-map-toggle.fish on|off <monitors.json>
|
|
||||||
|
|
||||||
if test (count $argv) -lt 2
|
|
||||||
echo "Usage: $0 on|off <monitors.json>"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set mode $argv[1]
|
|
||||||
set json_file $argv[2]
|
|
||||||
|
|
||||||
if not test -e $json_file
|
|
||||||
echo "Error: File $json_file does not exist"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
# Parse the JSON and generate instructions for NON-primary monitors.
|
|
||||||
# When 'off', build the monitor string; when 'on', disable the monitor.
|
|
||||||
set instructions (${pkgs.jq}/bin/jq -r --arg mode "$mode" '
|
|
||||||
.[] |
|
|
||||||
if .primary then empty else
|
|
||||||
if $mode == "off" then
|
|
||||||
.name + "," +
|
|
||||||
(.width|tostring) + "x" + (.height|tostring) + "@" + (.refreshRate|tostring) + "," +
|
|
||||||
(.x|tostring) + "x" + (.y|tostring) + "," +
|
|
||||||
(.scale|tostring) +
|
|
||||||
(if has("transform") then ",transform," + (.transform|tostring) else "" end) +
|
|
||||||
",vrr," + (if has("vrr") then (.vrr|tostring) else "0" end)
|
|
||||||
else
|
|
||||||
.name + ", disable"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
' $json_file)
|
|
||||||
|
|
||||||
# Execute hyprctl keyword monitor for each instruction.
|
|
||||||
for instruction in $instructions
|
|
||||||
echo "Running: hyprctl keyword monitor $instruction"
|
|
||||||
hyprctl keyword monitor "$instruction"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Dispatch the appropriate submap.
|
|
||||||
if [ "$mode" = "on" ]
|
|
||||||
hyprctl --batch "dispatch submap steam; dispatch workspace 3"
|
|
||||||
else if [ "$mode" = "off" ]
|
|
||||||
hyprctl dispatch submap reset
|
|
||||||
else
|
|
||||||
echo "Invalid mode: $mode"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
''
|
|
|
@ -1,44 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
pkgs.writeScript "submap-script" ''
|
|
||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
# Usage: ./parse_submaps.fish path/to/file.json
|
|
||||||
if test (count $argv) -lt 1
|
|
||||||
echo "Usage: $argv[0] path/to/file.json"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set json_file $argv[1]
|
|
||||||
|
|
||||||
# Iterate over submaps preserving order
|
|
||||||
for entry in (${pkgs.jq}/bin/jq -c '.| to_entries[]' $json_file)
|
|
||||||
set submap_name (echo $entry | ${pkgs.jq}/bin/jq -r '.key')
|
|
||||||
echo "submap=$submap_name"
|
|
||||||
|
|
||||||
# Process each binds entry within the submap
|
|
||||||
for bind_entry in (echo $entry | ${pkgs.jq}/bin/jq -c '.value.binds | to_entries[]')
|
|
||||||
set bind_key (echo $bind_entry | ${pkgs.jq}/bin/jq -r '.key')
|
|
||||||
|
|
||||||
if test "$bind_key" = ""
|
|
||||||
set prefix "bind="
|
|
||||||
else if test "$bind_key" = "unbind"
|
|
||||||
set prefix "unbind="
|
|
||||||
else
|
|
||||||
set prefix "bind$bind_key="
|
|
||||||
end
|
|
||||||
|
|
||||||
# Process each binding's value in the array
|
|
||||||
for binding in (echo $bind_entry | ${pkgs.jq}/bin/jq -r '.value[]')
|
|
||||||
echo "$prefix$binding"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Append submap reset except for default "" submap
|
|
||||||
if not test "$submap_name" = ""
|
|
||||||
echo "submap=reset"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
''
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
# TODO: obviously lol
|
|
||||||
# Handle float terminal and grim select terminal
|
|
||||||
pkgs.writeScript "terminal-launch" ''
|
|
||||||
#!/usr/bin/env fish
|
|
||||||
foot
|
|
||||||
''
|
|
|
@ -1,60 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
pkgs.writeScript "zen-script" ''
|
|
||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
if test (count $argv) -lt 1
|
|
||||||
echo "Usage: $argv[0] path/to/your.json"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set json_file $argv[1]
|
|
||||||
|
|
||||||
function handle
|
|
||||||
set -l line $argv[1]
|
|
||||||
set -l file_path $argv[2]
|
|
||||||
switch $line
|
|
||||||
case "windowtitlev2*"
|
|
||||||
# Expected format: windowtitlev2>><id>,<title>
|
|
||||||
set -l payload (string replace -r '^windowtitlev2>>' "" $line)
|
|
||||||
set -l parts (string split "," $payload)
|
|
||||||
set -l window_id (string trim $parts[1])
|
|
||||||
set -l title (string join "," $parts[2..-1])
|
|
||||||
|
|
||||||
# Debug output
|
|
||||||
echo "Extracted window_id: [$window_id]"
|
|
||||||
echo "Extracted title: [$title]"
|
|
||||||
|
|
||||||
# Loop over the extensions defined in the JSON file.
|
|
||||||
for ext in ( ${pkgs.jq}/bin/jq -r 'keys[]' $file_path )
|
|
||||||
echo "Processing extension: [$ext]"
|
|
||||||
# Get regex, x and y for the current extension.
|
|
||||||
set -l reg ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].regex' $file_path )
|
|
||||||
set -l ext_x ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].x' $file_path )
|
|
||||||
set -l ext_y ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].y' $file_path )
|
|
||||||
|
|
||||||
# Remove any extra surrounding single quotes.
|
|
||||||
set -l reg (string trim -c "'" $reg)
|
|
||||||
|
|
||||||
# Debug: show the extension and regex being used.
|
|
||||||
echo "Checking extension [$ext] with regex [$reg] against title [$title]"
|
|
||||||
|
|
||||||
# If the title matches the regex, dispatch floating commands.
|
|
||||||
if string match -q -- "*$reg*" "$title"
|
|
||||||
echo "$ext window id: $window_id -- setting float mode with size $ext_x x $ext_y"
|
|
||||||
hyprctl --batch "dispatch togglefloating address:0x$window_id; dispatch resizewindowpixel exact $ext_x $ext_y,address:0x$window_id;"
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
case "*"
|
|
||||||
# Do nothing for other events.
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
${pkgs.socat}/bin/socat -U - UNIX-CONNECT:/run/user/1000/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock | while read -l line
|
|
||||||
handle "$line" "$json_file"
|
|
||||||
end
|
|
||||||
''
|
|
|
@ -1,4 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
}
|
|
|
@ -1,200 +0,0 @@
|
||||||
#
|
|
||||||
# Dunst
|
|
||||||
# Notification Daemon
|
|
||||||
#
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.packages = builtins.attrValues {
|
|
||||||
inherit (pkgs) libnotify; # required by dunst
|
|
||||||
};
|
|
||||||
|
|
||||||
services.dunst = {
|
|
||||||
enable = true;
|
|
||||||
# waylandDisplay = ""; # set the service's WAYLAND_DISPLAY environment variable
|
|
||||||
# configFile = "";
|
|
||||||
iconTheme = {
|
|
||||||
name = "Adwaita";
|
|
||||||
package = pkgs.adwaita-icon-theme;
|
|
||||||
size = "16x16";
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
global = {
|
|
||||||
# Allow a small subset of html markup:<b></b>, <i></i>, <s></s>, and <u></u>.
|
|
||||||
# For a complete reference see
|
|
||||||
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
|
||||||
# If markup is not allowed, those tags will be stripped out of the message.
|
|
||||||
allow_markup = "yes";
|
|
||||||
|
|
||||||
# The format of the message. Possible variables are:
|
|
||||||
# %a appname
|
|
||||||
# %s summary
|
|
||||||
# %b body
|
|
||||||
# %i iconname (including its path)
|
|
||||||
# %I iconname (without its path)
|
|
||||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
|
||||||
# Markup is allowed
|
|
||||||
format = "%I %s %p\\n%b";
|
|
||||||
|
|
||||||
#TODO dynamic fonts
|
|
||||||
#font = "Droid Sans 12";
|
|
||||||
alignment = "left"; # Options are "left", "center", and "right".
|
|
||||||
|
|
||||||
sort = "yes"; # Sort messages by urgency.
|
|
||||||
indicate_hidden = "yes"; # Show how many messages are currently hidden (because of geometry).
|
|
||||||
|
|
||||||
# The frequency with which text that is longer than the notification
|
|
||||||
# window allows bounces back and forth.
|
|
||||||
# This option conflicts with "word_wrap".
|
|
||||||
# Set to 0 to disable.
|
|
||||||
bounce_freq = 5;
|
|
||||||
|
|
||||||
# Show age of message if message is older than show_age_threshold
|
|
||||||
# seconds.
|
|
||||||
# Set to -1 to disable.
|
|
||||||
show_age_threshold = 60;
|
|
||||||
|
|
||||||
# Split notifications into multiple lines if they don't fit into
|
|
||||||
# geometry.
|
|
||||||
word_wrap = "no";
|
|
||||||
|
|
||||||
# Ignore newlines '\n' in notifications.
|
|
||||||
ignore_newline = "no";
|
|
||||||
|
|
||||||
# The geometry of the window:
|
|
||||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
|
||||||
# The geometry of the message window.
|
|
||||||
# The height is measured in number of notifications everything else
|
|
||||||
# in pixels. If the width is omitted but the height is given
|
|
||||||
# ("-geometry x2"), the message window expands over the whole screen
|
|
||||||
# (dmenu-like). If width is 0, the window expands to the longest
|
|
||||||
# message displayed. A positive x is measured from the left, a
|
|
||||||
# negative from the right side of the screen. Y is measured from
|
|
||||||
# the top and down respectevly.
|
|
||||||
# The width can be negative. In this case the actual width is the
|
|
||||||
# screen width minus the width defined in within the geometry option.
|
|
||||||
geometry = "0x4-25+25";
|
|
||||||
|
|
||||||
# Shrink window if it's smaller than the width. Will be ignored if
|
|
||||||
# width is 0.
|
|
||||||
shrink = "yes";
|
|
||||||
|
|
||||||
# Display notification on focused monitor. Possible modes are:
|
|
||||||
# mouse: follow mouse pointer
|
|
||||||
# keyboard: follow window with keyboard focus
|
|
||||||
# none: don't follow anything
|
|
||||||
#
|
|
||||||
# "keyboard" needs a windowmanager that exports the _NET_ACTIVE_WINDOW property.
|
|
||||||
# This should be the case for almost all modern windowmanagers.
|
|
||||||
#
|
|
||||||
# If this option is set to mouse or keyboard, the monitor option will be ignored.
|
|
||||||
follow = "mouse";
|
|
||||||
|
|
||||||
# Should a notification popped up from history be sticky or timeout
|
|
||||||
# as if it would normally do.
|
|
||||||
sticky_history = "yes";
|
|
||||||
|
|
||||||
# Maximum amount of notifications kept in history
|
|
||||||
history_length = 20;
|
|
||||||
|
|
||||||
# Display indicators for URLs (U) and actions (A).
|
|
||||||
show_indicators = "yes";
|
|
||||||
|
|
||||||
# The height of a single line. If the height is smaller than the
|
|
||||||
# font height, it will get raised to the font height.
|
|
||||||
# This adds empty space above and under the text.
|
|
||||||
line_height = 0;
|
|
||||||
|
|
||||||
# Draw a line of "separator_height" pixel height between two
|
|
||||||
# notifications. Set to 0 to disable.
|
|
||||||
separator_height = 1;
|
|
||||||
|
|
||||||
# Padding between text and separator.
|
|
||||||
padding = 8;
|
|
||||||
|
|
||||||
# Horizontal padding.
|
|
||||||
horizontal_padding = 10;
|
|
||||||
|
|
||||||
# The transparency of the window. Range: [0; 100].
|
|
||||||
# This option will only work if a compositing windowmanager is
|
|
||||||
# present (e.g. xcompmgr, compiz, etc.).
|
|
||||||
transparency = 15;
|
|
||||||
|
|
||||||
# Define a color for the separator.
|
|
||||||
# possible values are:
|
|
||||||
# * auto: dunst tries to find a color fitting to the background;
|
|
||||||
# * foreground: use the same color as the foreground;
|
|
||||||
# * frame: use the same color as the frame;
|
|
||||||
# * anything else will be interpreted as a X color.
|
|
||||||
# separator_color = "#454947";
|
|
||||||
|
|
||||||
# Print a notification on startup.
|
|
||||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
|
||||||
# automatically after a crash.
|
|
||||||
|
|
||||||
#set to true for debugging
|
|
||||||
startup_notification = false;
|
|
||||||
|
|
||||||
# Align icons left/right/off
|
|
||||||
icon_position = "left";
|
|
||||||
|
|
||||||
width = 300;
|
|
||||||
height = 300;
|
|
||||||
offset = "30x50";
|
|
||||||
#origin = "top-right";
|
|
||||||
origin = "top-center";
|
|
||||||
|
|
||||||
#TODO dynamic theme colours
|
|
||||||
# frame_color = "#dc7f41";
|
|
||||||
|
|
||||||
# Browser for opening urls in context menu.
|
|
||||||
browser = "firefox";
|
|
||||||
};
|
|
||||||
|
|
||||||
frame = {
|
|
||||||
width = 2;
|
|
||||||
#TODO dynamic colours
|
|
||||||
# color = "#dc7f41";
|
|
||||||
};
|
|
||||||
|
|
||||||
shortcuts = {
|
|
||||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
|
||||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
|
||||||
# "mod3" and "mod4" (windows-key).
|
|
||||||
# Xev might be helpful to find names for keys.
|
|
||||||
|
|
||||||
# Close notification.
|
|
||||||
close = "mod1+space";
|
|
||||||
|
|
||||||
# Close all notifications.
|
|
||||||
close_all = "ctrl+mod1+space";
|
|
||||||
|
|
||||||
# Redisplay last message(s).
|
|
||||||
history = "ctrl+mod4+h";
|
|
||||||
|
|
||||||
# Context menu.
|
|
||||||
context = "ctrl+mod1+c";
|
|
||||||
};
|
|
||||||
|
|
||||||
urgency_low = {
|
|
||||||
#TODO dynamic colours
|
|
||||||
# background = "#1e1e20";
|
|
||||||
# foreground = "#c5c8c6";
|
|
||||||
timeout = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
urgency_normal = {
|
|
||||||
#TODO dynamic colours
|
|
||||||
# background = "#1e1e20";
|
|
||||||
# foreground = "#c5c8c6";
|
|
||||||
timeout = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
urgency_critical = {
|
|
||||||
#TODO dynamic colours
|
|
||||||
# background = "#1e1e20";
|
|
||||||
# foreground = "#c5c8c6";
|
|
||||||
timeout = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
# Enable gammastep for night light
|
|
||||||
services.gammastep = {
|
|
||||||
enable = true;
|
|
||||||
provider = "manual";
|
|
||||||
latitude = 37.541290;
|
|
||||||
longitude = -77.434769;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
fade = 1;
|
|
||||||
adjustment-method = "wayland";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
temperature = {
|
|
||||||
day = 6500;
|
|
||||||
night = 4500;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Hyprpaper is used to set the wallpaper on the system
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# The wallpaper is set by stylix
|
|
||||||
services.hyprpaper = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
ipc = "on";
|
|
||||||
splash = false;
|
|
||||||
splash_offset = 2.0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
exec-once = [
|
|
||||||
"${pkgs.hyprpaper}/bin/hyprpaper"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
services.playerctld = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,93 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
qogir = pkgs.qogir-icon-theme.override {
|
|
||||||
colorVariants = [
|
|
||||||
"dark"
|
|
||||||
"standard"
|
|
||||||
];
|
|
||||||
themeVariants = [
|
|
||||||
"ubuntu"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.stylix.homeManagerModules.stylix
|
|
||||||
];
|
|
||||||
|
|
||||||
stylix = {
|
|
||||||
enable = true;
|
|
||||||
autoEnable = true;
|
|
||||||
base16Scheme = ./invincible.yaml;
|
|
||||||
image = ./wallpapers/invincible.jpg;
|
|
||||||
polarity = "dark";
|
|
||||||
fonts = {
|
|
||||||
serif = {
|
|
||||||
package = pkgs.google-fonts.override { fonts = [ "Laila" ]; };
|
|
||||||
name = "Laila";
|
|
||||||
};
|
|
||||||
|
|
||||||
sansSerif = {
|
|
||||||
package = pkgs.lexend;
|
|
||||||
name = "Lexend";
|
|
||||||
};
|
|
||||||
|
|
||||||
monospace = {
|
|
||||||
package = pkgs.monocraft-nerd-fonts;
|
|
||||||
name = "Monocraft";
|
|
||||||
};
|
|
||||||
|
|
||||||
emoji = {
|
|
||||||
package = pkgs.noto-fonts-emoji;
|
|
||||||
name = "Noto Color Emoji";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
targets = {
|
|
||||||
hyprpaper.enable = true;
|
|
||||||
vscode = {
|
|
||||||
enable = false;
|
|
||||||
# profileNames = [ "Stylix" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.pointerCursor = {
|
|
||||||
gtk.enable = true;
|
|
||||||
package = pkgs.bibata-cursors;
|
|
||||||
name = "Bibata-Modern-Classic";
|
|
||||||
size = 16;
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
iconTheme = {
|
|
||||||
# package = qogir;
|
|
||||||
# name = "Qogir";
|
|
||||||
package = (
|
|
||||||
pkgs.papirus-icon-theme.override {
|
|
||||||
color = "yellow";
|
|
||||||
}
|
|
||||||
);
|
|
||||||
name = "Papirus";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
# ".config/stylix/invincible.yaml" = {
|
|
||||||
# source = ./invincible.yaml;
|
|
||||||
# };
|
|
||||||
|
|
||||||
"Pictures/Wallpapers" = {
|
|
||||||
source = ./wallpapers;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
system: base16
|
|
||||||
slug: Invincible
|
|
||||||
name: Invincible
|
|
||||||
author: tophc7
|
|
||||||
variant: dark
|
|
||||||
palette:
|
|
||||||
base00: "262A2B"
|
|
||||||
base01: "2E3233"
|
|
||||||
base02: "323739"
|
|
||||||
base03: "464E53"
|
|
||||||
base04: "ADE0FB"
|
|
||||||
base05: "D4ECF1"
|
|
||||||
base06: "E7F2EC"
|
|
||||||
base07: "FAF7E6"
|
|
||||||
base08: "EE2E00" # Red
|
|
||||||
base09: "F7A94E" # Orange
|
|
||||||
base0A: "2B57B6" # Yellow
|
|
||||||
base0B: "8DE364" # Green
|
|
||||||
base0C: "59A3C0" # Cyan
|
|
||||||
base0D: "FCEEA1" # Blue
|
|
||||||
base0E: "AC92BF" # Purple
|
|
||||||
base0F: "EA5E79" # Magenta
|
|
||||||
|
|
||||||
# https://coolors.co/262a2b-2e3233-323739-464e53-ade0fb-d4ecf1-e7f2ec-faf7e6
|
|
||||||
# https://coolors.co/ee2e00-f7a94e-2b57b6-8de364-59a3c0-fceea1-ac92bf-ea5e79
|
|
Binary file not shown.
Before Width: | Height: | Size: 6.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 2.9 MiB |
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
withUWSM = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default
|
|
||||||
inputs.better-control.packages.${pkgs.system}.better-control
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
programs.foot = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
term = "xterm-256color";
|
|
||||||
font = "monospace:size=10";
|
|
||||||
dpi-aware = "yes";
|
|
||||||
};
|
|
||||||
|
|
||||||
mouse = {
|
|
||||||
hide-when-typing = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
file-roller
|
|
||||||
nautilus
|
|
||||||
nautilus-open-any-terminal
|
|
||||||
sushi
|
|
||||||
];
|
|
||||||
|
|
||||||
services = {
|
|
||||||
# needed for GNOME services outside of GNOME Desktop
|
|
||||||
dbus.packages = with pkgs; [
|
|
||||||
gcr
|
|
||||||
gnome-keyring
|
|
||||||
gnome-settings-daemon
|
|
||||||
gvfs
|
|
||||||
];
|
|
||||||
|
|
||||||
gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
gvfs.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
#
|
|
||||||
# greeter -> tuigreet https://github.com/apognu/tuigreet?tab=readme-ov-file
|
|
||||||
# display manager -> greetd https://man.sr.ht/~kennylevinsen/greetd/
|
|
||||||
#
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
user = config.hostSpec.username;
|
|
||||||
default = {
|
|
||||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --asterisks --time --time-format '%I:%M %p | %a • %h | %F' --cmd uwsm start default";
|
|
||||||
user = user;
|
|
||||||
};
|
|
||||||
initial = {
|
|
||||||
# command = "${pkgs.hyprland}/bin/Hyprland";
|
|
||||||
command = "uwsm start default";
|
|
||||||
user = user;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# environment.systemPackages = [ pkgs.greetd.tuigreet ];
|
|
||||||
services.greetd = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
restart = true;
|
|
||||||
settings = rec {
|
|
||||||
default_session = default;
|
|
||||||
initial_session = initial;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
# general packages related to wayland
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
grim # screen capture component, required by flameshot
|
|
||||||
waypaper # wayland packages(nitrogen analog for wayland)
|
|
||||||
swww # backend wallpaper daemon required by waypaper
|
|
||||||
wl-clipboard-rs
|
|
||||||
wlr-randr
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
xdgOpenUsePortal = true;
|
|
||||||
extraPortals = [
|
|
||||||
pkgs.xdg-desktop-portal-gtk
|
|
||||||
# pkgs.xdg-desktop-portal-hyprland
|
|
||||||
];
|
|
||||||
# configPackages = [ pkgs.hyprland ];
|
|
||||||
# config.common.default = "*";
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue