fixes
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
|
||||
|
||||
(defwindow bar
|
||||
:monitor 1
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
:y "0%"
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
(eventbox
|
||||
:onhover "${EWW_CMD} update date_rev=true"
|
||||
:onhoverlost "${EWW_CMD} update date_rev=false"
|
||||
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle calendar)"
|
||||
:onrightclick "(sleep 0.1 && ${EWW_CMD} open --toggle powermenu)"
|
||||
:onclick "(sleep 0.1 && eww-open-on-current-screen calendar --toggle)"
|
||||
:onrightclick "(sleep 0.1 && eww-open-on-current-screen powermenu --toggle)"
|
||||
(box
|
||||
:class "datetime"
|
||||
(overlay
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
(defwidget sys-mod []
|
||||
(module
|
||||
(eventbox
|
||||
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle sys)"
|
||||
:onclick "(sleep 0.1 && eww-open-on-current-screen sys --toggle)"
|
||||
(box
|
||||
:orientation "v"
|
||||
(circular-progress
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
(defwindow calendar
|
||||
:monitor 1
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
:y "0%"
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
)
|
||||
|
||||
(defwindow powermenu
|
||||
:monitor 1
|
||||
:monitor 0
|
||||
:stacking "overlay"
|
||||
:geometry (geometry
|
||||
:anchor "center"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
(defvar radio_rev false)
|
||||
|
||||
(defwindow radio
|
||||
:monitor 1
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
:y "0%"
|
||||
@@ -100,7 +100,7 @@
|
||||
(box
|
||||
:orientation "v"
|
||||
(button
|
||||
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle --no-daemonize radio)"
|
||||
:onclick "(sleep 0.1 && eww-open-on-current-screen radio --toggle --no-daemonize)"
|
||||
(label
|
||||
:show-truncated false
|
||||
:class "icon-text"
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
)
|
||||
|
||||
(defwindow sys
|
||||
:monitor 1
|
||||
:monitor 0
|
||||
:stacking "overlay"
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
|
||||
@@ -1,7 +1,21 @@
|
||||
{ lib, config, pkgs, ... }: {
|
||||
{ lib, config, pkgs, ... }:
|
||||
let
|
||||
openOnCurrentScreen = pkgs.writeShellScriptBin "eww-open-on-current-screen" ''
|
||||
window="$1"
|
||||
shift
|
||||
|
||||
screen="$(hyprctl monitors -j | ${lib.getExe pkgs.jq} -r '.[] | select(.focused == true) | .name' | head -n1)"
|
||||
|
||||
if [ -n "$screen" ]; then
|
||||
exec ${lib.getExe pkgs.eww} open "$window" --screen "$screen" "$@"
|
||||
fi
|
||||
|
||||
exec ${lib.getExe pkgs.eww} open "$window" "$@"
|
||||
'';
|
||||
in {
|
||||
|
||||
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
||||
home.packages = with pkgs; [ eww jq jaq custom.amdgpu_top ];
|
||||
home.packages = with pkgs; [ eww jq jaq custom.amdgpu_top openOnCurrentScreen ];
|
||||
|
||||
xdg.configFile."eww" = {
|
||||
source = lib.cleanSourceWith {
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
{ config, lib, ... }: {
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
restartEwwBar = monitor: pkgs.writeShellScript "restart-eww-bar-after-kanshi-${toString monitor}" ''
|
||||
|
||||
sleep 1
|
||||
${lib.getExe pkgs.eww} close bar || true
|
||||
${lib.getExe pkgs.eww} open bar --screen ${toString monitor}
|
||||
'';
|
||||
in {
|
||||
|
||||
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
||||
services.kanshi = {
|
||||
@@ -7,6 +15,7 @@
|
||||
settings = [
|
||||
{
|
||||
profile.name = "tower_0";
|
||||
profile.exec = [ "${restartEwwBar 1}" ];
|
||||
profile.outputs = [
|
||||
{
|
||||
criteria = "AOC 24E1W1 GNSKCHA086899";
|
||||
@@ -28,6 +37,7 @@
|
||||
}
|
||||
{
|
||||
profile.name = "tower_1";
|
||||
profile.exec = [ "${restartEwwBar 1}" ];
|
||||
profile.outputs = [
|
||||
{
|
||||
criteria = "AOC 24E1W1 GNSKCHA086899";
|
||||
@@ -57,6 +67,7 @@
|
||||
}
|
||||
{
|
||||
profile.name = "laptop_0";
|
||||
profile.exec = [ "${restartEwwBar 0}" ];
|
||||
profile.outputs = [{
|
||||
criteria = "LG Display 0x060A Unknown";
|
||||
mode = "1920x1080@60.020";
|
||||
@@ -67,6 +78,7 @@
|
||||
}
|
||||
{
|
||||
profile.name = "laptop_1";
|
||||
profile.exec = [ "${restartEwwBar 1}" ];
|
||||
profile.outputs = [
|
||||
{
|
||||
criteria = "CEX CX133 0x00000001";
|
||||
@@ -86,6 +98,7 @@
|
||||
}
|
||||
{
|
||||
profile.name = "laptop_2";
|
||||
profile.exec = [ "${restartEwwBar 1}" ];
|
||||
profile.outputs = [
|
||||
{
|
||||
criteria = "AOC 16G3 1DDP7HA000348";
|
||||
|
||||
@@ -232,7 +232,7 @@ in {
|
||||
"custom/powermenu" = {
|
||||
"format" = "{icon}";
|
||||
"format-icons" = [ "" ];
|
||||
"on-click" = "eww open powermenu";
|
||||
"on-click" = "eww-open-on-current-screen powermenu";
|
||||
"tooltip" = false;
|
||||
};
|
||||
"tray" = {
|
||||
|
||||
514
modules/home/wayland/hyprland/config.nix
Executable file → Normal file
514
modules/home/wayland/hyprland/config.nix
Executable file → Normal file
@@ -1,231 +1,333 @@
|
||||
{ lib, config, pkgs, ... }: {
|
||||
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
||||
{ lib, config, pkgs, ... }: let
|
||||
lua = lib.generators.mkLuaInline;
|
||||
|
||||
bind = keys: dispatcher: { _args = [ keys dispatcher ]; };
|
||||
bindOpts = keys: dispatcher: opts: { _args = [ keys dispatcher opts ]; };
|
||||
|
||||
dsp = {
|
||||
exec = cmd: lua ''hl.dsp.exec_cmd("${cmd}")'';
|
||||
close = lua "hl.dsp.window.close()";
|
||||
exit = lua "hl.dsp.exit()";
|
||||
float = lua ''hl.dsp.window.float({ action = "toggle" })'';
|
||||
fullscreen = lua "hl.dsp.window.fullscreen()";
|
||||
pseudo = lua "hl.dsp.window.pseudo()";
|
||||
layout = msg: lua ''hl.dsp.layout("${msg}")'';
|
||||
focus = dir: lua ''hl.dsp.focus({ direction = "${dir}" })'';
|
||||
swap = dir: lua ''hl.dsp.window.swap({ direction = "${dir}" })'';
|
||||
toggleSpecial = name: lua ''hl.dsp.workspace.toggle_special("${name}")'';
|
||||
moveToSpecial = name: lua ''hl.dsp.window.move({ workspace = "special:${name}" })'';
|
||||
focusWorkspace = ws: lua ''hl.dsp.focus({ workspace = "${toString ws}" })'';
|
||||
moveToWorkspace = ws: lua ''hl.dsp.window.move({ workspace = "${toString ws}", follow = false})'';
|
||||
drag = lua "hl.dsp.window.drag()";
|
||||
resize = lua "hl.dsp.window.resize()";
|
||||
};
|
||||
|
||||
|
||||
startupScript = pkgs.writeShellScriptBin "hyprland-start" ''
|
||||
eww-open-on-bar-screen bar &
|
||||
dunst &
|
||||
awww-daemon &
|
||||
|
||||
sleep 2
|
||||
keepassxc &
|
||||
firefox &
|
||||
jellyfin-mpv-shim &
|
||||
easyeffects --gapplication-service &
|
||||
|
||||
sleep 2
|
||||
nextcloud &
|
||||
# telegram-desktop &
|
||||
# discord &
|
||||
'';
|
||||
in {
|
||||
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
extraConfig = ''
|
||||
monitor=,preferred,auto,auto
|
||||
env=bitdepth,10
|
||||
input {
|
||||
kb_layout = us, ru
|
||||
kb_variant = intl, phonetic
|
||||
kb_options = grp:ctrls_toggle
|
||||
configType = "lua";
|
||||
settings = {
|
||||
on = {
|
||||
_args = [
|
||||
"hyprland.start"
|
||||
(lua ''
|
||||
function()
|
||||
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||
hl.exec_cmd("${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1")
|
||||
hl.exec_cmd("wl-paste --type text --watch cliphist store")
|
||||
hl.exec_cmd("wl-paste --type image --watch cliphist store")
|
||||
hl.exec_cmd("swayidle -w timeout 600 'swaylock' before-sleep 'swaylock'")
|
||||
hl.exec_cmd("${startupScript}/bin/start")
|
||||
hl.exec_cmd("[workspace special:magic silent] kitty --title flying_kitty")
|
||||
end'')
|
||||
];
|
||||
};
|
||||
|
||||
follow_mouse = 1
|
||||
monitor = [{
|
||||
output = "";
|
||||
mode = "preferred";
|
||||
position = "auto";
|
||||
scale = "auto";
|
||||
bitdepth = 10;
|
||||
}];
|
||||
#Fullscreen HDR is possible without the hdr cm setting if "render:cm_auto_hdr" is enabled.
|
||||
|
||||
sensitivity = 0
|
||||
config = {
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
kb_variant = "intl";#, phonetic";
|
||||
kb_options = "grp:alt_shift_toggle";
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0;
|
||||
|
||||
touchpad {
|
||||
natural_scroll=no
|
||||
disable_while_typing=true
|
||||
scroll_factor=1
|
||||
disable_while_typing=0
|
||||
tap-to-click=0
|
||||
touchpad = {
|
||||
natural_scroll = false;
|
||||
scroll_factor = 1;
|
||||
disable_while_typing = false;
|
||||
tap_to_click = false;
|
||||
};
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = -1;
|
||||
disable_hyprland_logo = true;
|
||||
animate_mouse_windowdragging = false;
|
||||
animate_manual_resizes = false;
|
||||
vrr = 1;
|
||||
};
|
||||
general = {
|
||||
gaps_in = config.colorScheme.palette.gaps-window;
|
||||
gaps_out = config.colorScheme.palette.gaps-screen;
|
||||
border_size = lib.toInt config.colorScheme.palette.border-width;
|
||||
col = {
|
||||
active_border = "rgb(${config.colorScheme.palette.base04})";
|
||||
inactive_border = "rgb(${config.colorScheme.palette.base03})";
|
||||
};
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = lib.toInt config.colorScheme.palette.border-radius;
|
||||
inactive_opacity = 1.0;
|
||||
active_opacity = 1.0;
|
||||
fullscreen_opacity = 1.0;
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 2;
|
||||
passes = 1;
|
||||
new_optimizations = true;
|
||||
};
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
#pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
animations = {
|
||||
enabled = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
};
|
||||
};
|
||||
|
||||
curve = [{
|
||||
_args = [
|
||||
"customcurve"
|
||||
{
|
||||
type = "bezier";
|
||||
points = lua "{ {0.0, 0.9}, {0.1, 1.0} }";
|
||||
}
|
||||
}
|
||||
];
|
||||
}];
|
||||
|
||||
misc {
|
||||
disable_hyprland_logo=true
|
||||
animate_mouse_windowdragging=false
|
||||
animate_manual_resizes=false
|
||||
animation = [
|
||||
{ leaf = "windows"; enabled = true; speed = 4; bezier = "customcurve"; }
|
||||
{ leaf = "windowsOut"; enabled = true; speed = 4; bezier = "customcurve"; style = "popin 80%"; }
|
||||
{ leaf = "border"; enabled = true; speed = 10; bezier = "customcurve"; }
|
||||
{ leaf = "borderangle"; enabled = true; speed = 1; bezier = "customcurve"; }
|
||||
{ leaf = "fade"; enabled = true; speed = 4; bezier = "customcurve"; }
|
||||
{ leaf = "workspaces"; enabled = true; speed = 4; bezier = "customcurve"; }
|
||||
];
|
||||
|
||||
vrr=1
|
||||
}
|
||||
|
||||
general {
|
||||
gaps_in = ${config.colorScheme.palette.gaps-window}
|
||||
gaps_out = ${config.colorScheme.palette.gaps-screen}
|
||||
border_size = ${config.colorScheme.palette.border-width}
|
||||
gesture = {
|
||||
fingers = 3;
|
||||
direction = "vertical";
|
||||
action = "workspace";
|
||||
};
|
||||
|
||||
col.active_border = rgb(${config.colorScheme.palette.base04})
|
||||
col.inactive_border = rgb(${config.colorScheme.palette.base03})
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = ${config.colorScheme.palette.border-radius}
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 2
|
||||
passes = 1
|
||||
new_optimizations = true
|
||||
window_rule = [
|
||||
{ match.title = "noshadow"; float= false;}
|
||||
{
|
||||
match.title = "^(flying_kitty)$";
|
||||
float = true;
|
||||
center = true;
|
||||
size = "1100 600";
|
||||
move = "{0 600}";
|
||||
animation = "slide";
|
||||
}
|
||||
{ match.title = "^(Volume Control)$"; float = true; }
|
||||
{ match.title = "^(Picture-in-Picture)$"; float = true; }
|
||||
{ match.title = "^(Steam)$"; float = true; }
|
||||
# --- Chat & Workspace Assignments ---
|
||||
{ match.class = "^(org.telegram.desktop)$"; workspace = "2 silent"; }
|
||||
{ match.class = "^(discord)$"; workspace = "2 silent"; }
|
||||
{ match.class = "^(org.keepassxc.KeePassXC)$"; workspace = "8 silent"; }
|
||||
{ match.title = "^(Nextcloud)$"; workspace = "8 silent"; }
|
||||
{ match.class = "^(org.telegram.desktop)$"; match.title = "^(Media viewer)$"; float = true; center = true; }
|
||||
{
|
||||
match.class = "^(Tk)$";
|
||||
match.title = "^(Server Configuration)$";
|
||||
workspace = "8 silent";
|
||||
}
|
||||
#multisample_edges = true
|
||||
# --- KeePassXC Dialogs ---
|
||||
{
|
||||
match.class = "^(org.keepassxc.KeePassXC)$";
|
||||
match.title = "^(KeePassXC - Access Request)$";
|
||||
float = true;
|
||||
pin = true;
|
||||
}
|
||||
{
|
||||
match.class = "^(org.keepassxc.KeePassXC)$";
|
||||
match.title = "^(Unlock Database - KeePassXC)$";
|
||||
float = true;
|
||||
pin = true;
|
||||
}
|
||||
# --- Generic System / File Dialogs ---
|
||||
{ match.title = "^(Open)$"; float = true; }
|
||||
{ match.title = "^(Choose Files)$"; float = true; }
|
||||
{ match.title = "^(Save As)$"; float = true; }
|
||||
{ match.title = "^(Confirm to replace files)$"; float = true; }
|
||||
{ match.title = "^(File Operation Progress)$"; float = true; }
|
||||
|
||||
#opactity
|
||||
inactive_opacity = 1.0
|
||||
active_opacity = 1.0
|
||||
fullscreen_opacity = 1.0
|
||||
# --- Firefox Window Rules ---
|
||||
{
|
||||
match.class = "^(firefox)$";
|
||||
match.title = "^(Picture-in-Picture)$";
|
||||
float = true;
|
||||
pin = true;
|
||||
suppress_event = "fullscreen";
|
||||
}
|
||||
{
|
||||
match.class = "^(firefox)$";
|
||||
match.title = "^(Firefox — Sharing Indicator)$";
|
||||
float = true;
|
||||
suppress_event = "fullscreen";
|
||||
}
|
||||
{
|
||||
match.class = "^(firefox)$";
|
||||
match.title = "^(Extension:.* Mozilla Firefox)$";
|
||||
float = true;
|
||||
suppress_event = "fullscreen";
|
||||
}
|
||||
|
||||
# shadow
|
||||
# drop_shadow = no
|
||||
# shadow_range = 60
|
||||
# shadow_offset = 0 5
|
||||
# shadow_render_power = 4
|
||||
#col.shadow = rgba(00000099)
|
||||
}
|
||||
# --- Telegram Media Viewer ---
|
||||
{
|
||||
match.class = "^(org.telegram.desktop)$";
|
||||
match.title = "^(Media viewer)$";
|
||||
float = true;
|
||||
center = true;
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = customcurve, 0.0, 0.9, 0.1, 1.0
|
||||
# --- Idle Inhibition ---
|
||||
{ match.class = "^(.*)$"; idle_inhibit = "fullscreen"; }
|
||||
{ match.class = "^(steam_app_.*)$"; idle_inhibit = "focus"; }
|
||||
{ match.class = "^(mpv)$"; idle_inhibit = "focus"; }
|
||||
|
||||
animation = windows, 1, 4, customcurve
|
||||
animation = windowsOut, 1, 4, customcurve, popin 50%
|
||||
animation = border, 1, 10, customcurve
|
||||
animation = borderangle, 0, 1, customcurve
|
||||
animation = fade, 1, 4, customcurve
|
||||
animation = workspaces, 1, 4, customcurve
|
||||
}
|
||||
];
|
||||
|
||||
dwindle {
|
||||
pseudotile = yes
|
||||
preserve_split = yes
|
||||
}
|
||||
# windowrule = [ "noshadow, floating:0" ];
|
||||
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
# windowrulev2 = [
|
||||
# "workspace 2 silent, class:^(org.telegram.desktop)$"
|
||||
# "workspace 2 silent, class:^(discord)$"
|
||||
# "workspace 8 silent, class:^(org.keepassxc.KeePassXC)$"
|
||||
# "workspace 8 silent, title:^(Nextcloud)$"
|
||||
# "workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$"
|
||||
# "float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$"
|
||||
# "pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$"
|
||||
# "float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$"
|
||||
# "pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$"
|
||||
# "float,title:^(Open)$"
|
||||
# "float,title:^(Choose Files)$"
|
||||
# "float,title:^(Save As)$"
|
||||
# "float,title:^(Confirm to replace files)$"
|
||||
# "float,title:^(File Operation Progress)$"
|
||||
# "float,class:^(firefox)$,title:^(Picture-in-Picture)$"
|
||||
# "pin,class:^(firefox)$,title:^(Picture-in-Picture)$"
|
||||
# "suppressevent fullscreen,class:^(firefox)$,title:^(Picture-in-Picture)$"
|
||||
# "float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$"
|
||||
# "suppressevent fullscreen,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$"
|
||||
# "float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$"
|
||||
# "suppressevent fullscreen,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$"
|
||||
# "float,class:^(org.telegram.desktop)$,title:^(Media viewer)$"
|
||||
# "center,class:^(org.telegram.desktop)$,title:^(Media viewer)$"
|
||||
# "idleinhibit fullscreen, class:^(.*)"
|
||||
# "idleinhibit focus, class:^(steam_app_.*)$"
|
||||
# "idleinhibit focus, class:^(mpv)$"
|
||||
# ];
|
||||
|
||||
gesture = 3, vertical, workspace
|
||||
layer_rule = [ {
|
||||
match.namespace = "^eww%-blur$";
|
||||
blur = true;
|
||||
ignore_alpha = 0.5;
|
||||
}];
|
||||
|
||||
exec-once = eww open bar
|
||||
#exec-once = waybar
|
||||
exec-once = dunst
|
||||
bind = [
|
||||
(bind "SUPER + RETURN" (dsp.exec "kitty"))
|
||||
(bind "SUPER + SHIFT + RETURN" (dsp.toggleSpecial "magic"))
|
||||
(bind "SUPER + SHIFT + S" (dsp.moveToSpecial "magic"))
|
||||
(bind "SUPER + Q" dsp.close)
|
||||
(bind "SUPER + T" dsp.float)
|
||||
(bind "SUPER + F" dsp.fullscreen)
|
||||
(bind "SUPER + P" dsp.pseudo)
|
||||
(bind "SUPER + J" (dsp.layout "togglesplit"))
|
||||
(bind "SUPER + D" (dsp.exec "wofi -modi --show drun"))
|
||||
(bind "SUPER + SHIFT + D" (dsp.exec "~/.config/hypr/themes/apatheia/eww/launch_bar"))
|
||||
(bind "SUPER + V" (dsp.exec "cliphist list | wofi -dmenu | cliphist decode | wl-copy"))
|
||||
(bind "PRINT" (dsp.exec "hyprshot -m region --raw | satty --filename - --early-exit --action-on-enter save-to-clipboard --copy-command 'wl-copy'"))
|
||||
(bind "SUPER + L" (dsp.exec "swaylock"))
|
||||
(bind "SUPER + left" (dsp.focus "left"))
|
||||
(bind "SUPER + right" (dsp.focus "right"))
|
||||
(bind "SUPER + up" (dsp.focus "up"))
|
||||
(bind "SUPER + down" (dsp.focus "down"))
|
||||
(bind "SUPER + mouse_down" (dsp.focusWorkspace "e+1"))
|
||||
(bind "SUPER + mouse_up" (dsp.focusWorkspace "e-1"))
|
||||
|
||||
exec-once = swww init
|
||||
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once = /nix/store/$(ls -la /nix/store | grep 'polkit-gnome' | grep '4096' | awk '{print $9}' | sed -n '$p')/libexec/polkit-gnome-authentication-agent-1 &
|
||||
|
||||
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
||||
|
||||
exec-once = swayidle -w timeout 600 'swaylock' before-sleep 'swaylock'
|
||||
|
||||
|
||||
#windowrules
|
||||
windowrule = noshadow, floating:0
|
||||
|
||||
windowrule = float, title:^(flying_kitty)$
|
||||
windowrule = size 1100 600, title:^(flying_kitty)$
|
||||
windowrule = move center, title:^(flying_kitty)$
|
||||
windowrule = animation slide, title:^(flying_kitty)$
|
||||
windowrule = float, title:^(Volume Control)$
|
||||
windowrule = float, title:^(Picture-in-Picture)$
|
||||
windowrule = float, title:^(Steam)$
|
||||
|
||||
windowrulev2 = workspace 2 silent, class:^(org.telegram.desktop)$
|
||||
windowrulev2 = workspace 2 silent, class:^(discord)$
|
||||
|
||||
windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$
|
||||
windowrulev2 = workspace 8 silent, title:^(Nextcloud)$
|
||||
windowrulev2 = workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$
|
||||
|
||||
#SPECIAL FLOATERS
|
||||
windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$
|
||||
windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$
|
||||
windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$
|
||||
windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$
|
||||
windowrulev2 = float,title:^(Open)$
|
||||
windowrulev2 = float,title:^(Choose Files)$
|
||||
windowrulev2 = float,title:^(Save As)$
|
||||
windowrulev2 = float,title:^(Confirm to replace files)$
|
||||
windowrulev2 = float,title:^(File Operation Progress)$
|
||||
windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
|
||||
windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$
|
||||
windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Picture-in-Picture)$
|
||||
windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
|
||||
windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
|
||||
windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
|
||||
windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
|
||||
windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$
|
||||
windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$
|
||||
|
||||
#SPECIAL NO SLEEP
|
||||
windowrulev2 = idleinhibit fullscreen, class:^(.*)
|
||||
windowrulev2 = idleinhibit focus, class:^(steam_app_.*)$
|
||||
windowrulev2 = idleinhibit focus, class:^(mpv)$
|
||||
|
||||
layerrule = blur,^(eww-blur)
|
||||
|
||||
#binds
|
||||
bind = SUPER, RETURN, exec, kitty
|
||||
|
||||
bind = SUPER_SHIFT, RETURN,togglespecialworkspace,
|
||||
# bind = SUPER_SHIFT, RETURN, exec, kitty --title flying_kitty --single-instance
|
||||
bind = SUPER, Q, killactive,
|
||||
bind = SUPER, T, togglefloating,
|
||||
bind = SUPER, F, fullscreen,
|
||||
|
||||
bind = SUPER, D, exec, wofi -modi --show drun
|
||||
bind = SUPER SHIFT,D,exec, ~/.config/hypr/themes/apatheia/eww/launch_bar
|
||||
|
||||
bind = SUPER, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy
|
||||
bind = , PRINT, exec, hyprshot -m region --raw | satty --filename - --early-exit --action-on-enter save-to-clipboard --copy-command 'wl-copy'
|
||||
|
||||
bind = SUPER, L, exec, swaylock
|
||||
|
||||
bind = SUPER, left, movefocus, l
|
||||
bind = SUPER, right, movefocus, r
|
||||
bind = SUPER, up, movefocus, u
|
||||
bind = SUPER, down, movefocus, d
|
||||
|
||||
bind = SUPER, 1, workspace, 1
|
||||
bind = SUPER, 2, workspace, 2
|
||||
bind = SUPER, 3, workspace, 3
|
||||
bind = SUPER, 4, workspace, 4
|
||||
bind = SUPER, 5, workspace, 5
|
||||
bind = SUPER, 6, workspace, 6
|
||||
bind = SUPER, 7, workspace, 7
|
||||
bind = SUPER, 8, workspace, 8
|
||||
bind = SUPER, 9, workspace, 9
|
||||
bind = SUPER, 0, workspace, 10
|
||||
|
||||
bind = SUPER SHIFT, 1, movetoworkspacesilent, 1
|
||||
bind = SUPER SHIFT, 2, movetoworkspacesilent, 2
|
||||
bind = SUPER SHIFT, 3, movetoworkspacesilent, 3
|
||||
bind = SUPER SHIFT, 4, movetoworkspacesilent, 4
|
||||
bind = SUPER SHIFT, 5, movetoworkspacesilent, 5
|
||||
bind = SUPER SHIFT, 6, movetoworkspacesilent, 6
|
||||
bind = SUPER SHIFT, 7, movetoworkspacesilent, 7
|
||||
bind = SUPER SHIFT, 8, movetoworkspacesilent, 8
|
||||
bind = SUPER SHIFT, 9, movetoworkspacesilent, 9
|
||||
bind = SUPER SHIFT, 0, movetoworkspacesilent, 10
|
||||
|
||||
bind = SUPER, mouse_down, workspace, e+1
|
||||
bind = SUPER, mouse_up, workspace, e-1
|
||||
|
||||
bindm = SUPER, mouse:272, movewindow
|
||||
bindm = SUPER, mouse:273, resizewindow
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = , XF86AudioNext, exec, playerctl next
|
||||
bind = , XF86AudioRaiseVolume, exec, amixer -q sset 'Master' 5%+
|
||||
bind = , XF86AudioLowerVolume, exec, amixer -q sset 'Master' 5%-
|
||||
bind = , XF86AudioMute, exec, amixer -q sset 'Master' toggle
|
||||
bind = , XF86MonBrightnessUp, exec, brightnessctl s 5%+
|
||||
bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-
|
||||
|
||||
exec-once = [workspace special silent] kitty --title flying_kitty
|
||||
exec-once = sh ~/.config/startup.sh
|
||||
'';
|
||||
(bind "SUPER + 1" (dsp.focusWorkspace 1))
|
||||
(bind "SUPER + SHIFT + 1" (dsp.moveToWorkspace 1))
|
||||
(bind "SUPER + 2" (dsp.focusWorkspace 2))
|
||||
(bind "SUPER + SHIFT + 2" (dsp.moveToWorkspace 2))
|
||||
(bind "SUPER + 3" (dsp.focusWorkspace 3))
|
||||
(bind "SUPER + SHIFT + 3" (dsp.moveToWorkspace 3))
|
||||
(bind "SUPER + 4" (dsp.focusWorkspace 4))
|
||||
(bind "SUPER + SHIFT + 4" (dsp.moveToWorkspace 4))
|
||||
(bind "SUPER + 5" (dsp.focusWorkspace 5))
|
||||
(bind "SUPER + SHIFT + 5" (dsp.moveToWorkspace 5))
|
||||
(bind "SUPER + 6" (dsp.focusWorkspace 6))
|
||||
(bind "SUPER + SHIFT + 6" (dsp.moveToWorkspace 6))
|
||||
(bind "SUPER + 7" (dsp.focusWorkspace 7))
|
||||
(bind "SUPER + SHIFT + 7" (dsp.moveToWorkspace 7))
|
||||
(bind "SUPER + 8" (dsp.focusWorkspace 8))
|
||||
(bind "SUPER + SHIFT + 8" (dsp.moveToWorkspace 8))
|
||||
(bind "SUPER + 9" (dsp.focusWorkspace 9))
|
||||
(bind "SUPER + SHIFT + 9" (dsp.moveToWorkspace 9))
|
||||
(bind "SUPER + 0" (dsp.focusWorkspace 0))
|
||||
(bind "SUPER + SHIFT + 0" (dsp.moveToWorkspace 0))
|
||||
(bind "XF86AudioPlay" (dsp.exec "playerctl play-pause"))
|
||||
(bind "XF86AudioPrev" (dsp.exec "playerctl previous"))
|
||||
(bind "XF86AudioNext" (dsp.exec "playerctl next"))
|
||||
(bindOpts "XF86AudioRaiseVolume" (dsp.exec "amixer -q sset 'Master' 5%+") { locked = true; repeating = true; })
|
||||
(bindOpts "XF86AudioLowerVolume" (dsp.exec "amixer -q sset 'Master' 5%-") { locked = true; repeating = true; })
|
||||
(bindOpts "XF86AudioMute" (dsp.exec "amixer -q sset 'Master' toggle") { locked = true; })
|
||||
(bindOpts "XF86MonBrightnessUp" (dsp.exec "brightnessctl s 5%+") { locked = true; repeating = true; })
|
||||
(bindOpts "XF86MonBrightnessDown" (dsp.exec "brightnessctl s 5%-") { locked = true; repeating = true; })
|
||||
(bindOpts "SUPER + mouse:272" dsp.drag { mouse = true; })
|
||||
(bindOpts "SUPER + mouse:273" dsp.resize { mouse = true; })
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."startup.sh".text = ''
|
||||
#!/bin/sh
|
||||
sleep 2
|
||||
keepassxc &
|
||||
firefox &
|
||||
jellyfin-mpv-shim &
|
||||
easyeffects --gapplication-service &
|
||||
|
||||
sleep 2
|
||||
nextcloud &
|
||||
#telegram-desktop&
|
||||
#discord&
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
enable = true;
|
||||
settings = rec {
|
||||
initial_session = {
|
||||
command = "zsh";
|
||||
command = "start-hyprland";
|
||||
user = "${config.syscfg.defaultUser}";
|
||||
};
|
||||
default_session = initial_session;
|
||||
|
||||
Reference in New Issue
Block a user