Switch to hyprpanel
This commit is contained in:
parent
e239e4dd0a
commit
68207a05b9
61
flake.lock
generated
61
flake.lock
generated
@ -294,11 +294,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754756528,
|
"lastModified": 1754842705,
|
||||||
"narHash": "sha256-W1jYKMetZSOHP5m2Z5Wokdj/ct17swPHs+MiY2WT1HQ=",
|
"narHash": "sha256-2vvncPLsBWV6dRM5LfGHMGYZ+vzqRDqSPBzxPAS0R/A=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "3ec1cd9a0703fbd55d865b7fd2b07d08374f0355",
|
"rev": "91586008a23c01cc32894ee187dca8c0a7bd20a4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -413,11 +413,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754517526,
|
"lastModified": 1754766309,
|
||||||
"narHash": "sha256-zPfU6I7AqlDpoC0ZLTnayqCOyEn9Emub/ca4ATP/XxY=",
|
"narHash": "sha256-pANfQZ22RNF6sCFxrMahjE70v/HbGfA4lPZ7pTmfwUQ=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-plugins",
|
"repo": "hyprland-plugins",
|
||||||
"rev": "c8dc6f3d5437d26fae625c40388ba52e97bc5fdf",
|
"rev": "833af8e8c6f035a53a167aff59e5e85bf0386d93",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -560,6 +560,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hyprshell": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754807024,
|
||||||
|
"narHash": "sha256-mwCxEd8gFRUipVrj3IVUQW6JQ3lgts5pbS5SyQtRV/U=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "a9eef265ad3417dd2f6cc3466413438571408b3f",
|
||||||
|
"revCount": 15,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitgud.foo/thegrind/hypr-shell.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitgud.foo/thegrind/hypr-shell.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"hyprutils": {
|
"hyprutils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -674,11 +692,27 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754498491,
|
"lastModified": 1754725699,
|
||||||
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
|
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754725699,
|
||||||
|
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134",
|
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -768,8 +802,9 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland-plugins": "hyprland-plugins",
|
"hyprland-plugins": "hyprland-plugins",
|
||||||
|
"hyprshell": "hyprshell",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"stylix": "stylix"
|
"stylix": "stylix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -815,11 +850,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754597531,
|
"lastModified": 1754851076,
|
||||||
"narHash": "sha256-OpC9/PBIuL2WEJUkcuD/wVxI8r+3o6f5RylSIefjHo4=",
|
"narHash": "sha256-k3+/24lN6E9BFRhryHocm7314t0Wtku0hgIdEWi15XI=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "63bb34a66ad7d1af2e95ee20dd675896b2074c32",
|
"rev": "afcfed6fd2a51615cd63aa7fa7608d670e7b61e5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
37
flake.nix
37
flake.nix
@ -2,13 +2,17 @@
|
|||||||
description = "My system configuration";
|
description = "My system configuration";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
url = "github:danth/stylix";
|
url = "github:danth/stylix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hyprshell = {
|
||||||
|
url = "git+https://gitgud.foo/thegrind/hypr-shell.git";
|
||||||
|
};
|
||||||
|
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote/v0.4.2";
|
url = "github:nix-community/lanzaboote/v0.4.2";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@ -85,24 +89,6 @@
|
|||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
./system/default.nix
|
./system/default.nix
|
||||||
lanzaboote.nixosModules.lanzaboote
|
lanzaboote.nixosModules.lanzaboote
|
||||||
|
|
||||||
# Link Hyprland-Dots configs
|
|
||||||
# {
|
|
||||||
# home.file = {
|
|
||||||
# ".config/hypr".source = "${hyprdots}/hypr";
|
|
||||||
# ".config/waybar".source = "${hyprdots}/waybar";
|
|
||||||
# ".config/rofi".source = "${hyprdots}/rofi";
|
|
||||||
# ".config/swww".source = "${hyprdots}/swww";
|
|
||||||
# ".config/wallust".source = "${hyprdots}/wallust";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# # Install extra tools from Hyprland-Dots requirements
|
|
||||||
# home.packages = with pkgs; [
|
|
||||||
# waybar rofi-wayland swww wallust
|
|
||||||
# grim slurp wl-clipboard
|
|
||||||
# ];
|
|
||||||
# }
|
|
||||||
|
|
||||||
(
|
(
|
||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
{
|
{
|
||||||
@ -133,6 +119,7 @@
|
|||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
extraSpecialArgs = { inherit inputs; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
|
inputs.hyprshell.homeManagerModules.default
|
||||||
./home/default.nix
|
./home/default.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@ -141,9 +128,17 @@
|
|||||||
|
|
||||||
home-manager.users.xbazzi = {
|
home-manager.users.xbazzi = {
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
#home.packages = [
|
extraSpecialArgs = { inherit inputs; };
|
||||||
#];
|
# imports =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# home-manager.users.xbazzi = {
|
||||||
|
# extraSpecialArgs = { inherit inputs; };
|
||||||
|
# nixpkgs.config.allowUnfree = true;
|
||||||
|
# # imports = inputs.hyprshell.homeManagerModules.default;
|
||||||
|
# #home.packages = [
|
||||||
|
# #];
|
||||||
|
# };
|
||||||
#home-manager.extraSpecialArgs
|
#home-manager.extraSpecialArgs
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,9 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
# inputs.hyprshell.homeManagerModules.default
|
||||||
./home.nix
|
./home.nix
|
||||||
|
./yazi.nix
|
||||||
./bash.nix
|
./bash.nix
|
||||||
./gtk.nix
|
./gtk.nix
|
||||||
./tmux.nix
|
./tmux.nix
|
||||||
@ -16,9 +18,13 @@
|
|||||||
#./vscode.nix
|
#./vscode.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
./hyprlock.nix
|
./hyprlock.nix
|
||||||
|
./hypridle.nix
|
||||||
|
./notify.nix
|
||||||
# ./waybar.nix
|
# ./waybar.nix
|
||||||
# ./dconf.nix
|
# ./dconf.nix
|
||||||
./quickshell.nix
|
# ./quickshell.nix
|
||||||
|
# ./hyprpanel.nix
|
||||||
|
./hyprpanel3.nix
|
||||||
./hyprpaper.nix
|
./hyprpaper.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
./hyprland.nix
|
./hyprland.nix
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
|
|
||||||
wayland.windowManager.hyprland.enable = true;
|
wayland.windowManager.hyprland.enable = true;
|
||||||
|
|
||||||
|
programs.command-not-found.enable = false;
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
@ -7,24 +7,27 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.hypridle = {
|
services.hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
general = {
|
general = {
|
||||||
lock_cmd = "hyprctl dispatch exec 'hyprlock --immediate'";
|
# lock_cmd = "hyprctl dispatch exec 'hyprlock --immediate'";
|
||||||
|
lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
|
||||||
before_sleep_cmd = "hyprctl dispatch exec 'hyprlock --immediate'";
|
before_sleep_cmd = "hyprctl dispatch exec 'hyprlock --immediate'";
|
||||||
after_sleep_cmd = "notify-send '💡 Welcome back, badman!'";
|
# before_sleep_cmd = "loginctl lock-session";
|
||||||
|
# after_sleep_cmd = "notify-send '💡 Welcome back, badman!'";
|
||||||
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
};
|
};
|
||||||
|
|
||||||
listener = [
|
listener = [
|
||||||
{
|
{
|
||||||
timeout = 270; # 4.5 min — warn before lock
|
timeout = 10; # 4.5 min — warn before lock
|
||||||
on-timeout = "notify-send '🔒 Locking in 30s...'";
|
on-timeout = "notify-send '🔒 Locking in 30s...'";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
timeout = 300; # 5 min — lock screen
|
timeout = 300; # 5 min — lock screen
|
||||||
on-timeout = "hyprctl dispatch exec 'hypelock --immediate'";
|
on-timeout = "hyprctl dispatch exec 'hyprlock --immediate'";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
timeout = 900; # 15 min — suspend
|
timeout = 900; # 15 min — suspend
|
||||||
|
@ -10,20 +10,29 @@
|
|||||||
settings = {
|
settings = {
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
|
input = {
|
||||||
|
repeat_delay = 240;
|
||||||
|
repeat_rate = 40;
|
||||||
|
};
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"HYPRLAND_PRIMARY_MONITOR,DP-3"
|
||||||
|
];
|
||||||
|
|
||||||
monitor = [
|
monitor = [
|
||||||
"DP-1, 1920x1080@144, 0x0, 1"
|
"DP-1, 1920x1080@144, 0x0, 1"
|
||||||
"DP-3, 2560x1440@240, 1920x0, 1"
|
"DP-3, 2560x1440@240, 1920x0, 1"
|
||||||
"HMDI-A-1, 3440x1440@160, 4480x0, 1"
|
"HDMI-A-1, 3440x1440@160, 4480x0, 1"
|
||||||
# "DP-3,addreserved,30,0,0,0"
|
# "DP-3,addreserved,30,0,0,0"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Mouse stuff (Ew... I know)
|
# Mouse stuff (Ew... I know)
|
||||||
bindm = [
|
bindm = [
|
||||||
# Left click move
|
# Right click move
|
||||||
"$mod, mouse:272, movewindow"
|
"ALT, mouse:272, movewindow"
|
||||||
|
|
||||||
# Left click resize
|
# Left click resize
|
||||||
"ALT, mouse:272, resizewindow"
|
"ALT, mouse:273, resizewindow"
|
||||||
# "ALT CTRL, mouse:272, resizewindow 1"
|
# "ALT CTRL, mouse:272, resizewindow 1"
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -32,9 +41,21 @@
|
|||||||
"$mod CTRL, l, resizeactive, 30 0"
|
"$mod CTRL, l, resizeactive, 30 0"
|
||||||
"$mod CTRL, j, resizeactive, 0 30"
|
"$mod CTRL, j, resizeactive, 0 30"
|
||||||
"$mod CTRL, k, resizeactive, 0 -30"
|
"$mod CTRL, k, resizeactive, 0 -30"
|
||||||
|
|
||||||
|
"$mod, 0, layoutmsg, rollnext"
|
||||||
|
"$mod SHIFT, 0, layoutmsg, rollprev"
|
||||||
|
"$mod SHIFT, n, layoutmsg, cycleprev"
|
||||||
|
"$mod SHIFT, p, layoutmsg, cyclenext"
|
||||||
];
|
];
|
||||||
|
|
||||||
bind = [
|
bind = [
|
||||||
|
# Dwindle
|
||||||
|
"$mod, p, layoutmsg, togglesplit"
|
||||||
|
"$mod, 0, layoutmsg, swapsplit"
|
||||||
|
"$mod, a, layoutmsg, preselect l"
|
||||||
|
"$mod SHIFT, a, layoutmsg, preselect u"
|
||||||
|
|
||||||
|
"ALT, TAB, cyclenext, all"
|
||||||
|
|
||||||
"$mod, h, movefocus, l"
|
"$mod, h, movefocus, l"
|
||||||
"$mod, l, movefocus, r"
|
"$mod, l, movefocus, r"
|
||||||
@ -42,10 +63,6 @@
|
|||||||
"$mod, j, movefocus, d"
|
"$mod, j, movefocus, d"
|
||||||
"$mod SHIFT, q, killactive"
|
"$mod SHIFT, q, killactive"
|
||||||
|
|
||||||
"$mod, 0, layoutmsg, rollnext"
|
|
||||||
"$mod SHIFT, n, layoutmsg, cycleprev"
|
|
||||||
"$mod SHIFT, p, layoutmsg, cyclenext"
|
|
||||||
|
|
||||||
"$mod, f, fullscreen, 0"
|
"$mod, f, fullscreen, 0"
|
||||||
|
|
||||||
"$mod, d, exec, wofi --show drun"
|
"$mod, d, exec, wofi --show drun"
|
||||||
@ -56,11 +73,10 @@
|
|||||||
"$mod SHIFT, l, movewindow, mon:-1"
|
"$mod SHIFT, l, movewindow, mon:-1"
|
||||||
"$mod SHIFT, h, movewindow, mon:+1"
|
"$mod SHIFT, h, movewindow, mon:+1"
|
||||||
|
|
||||||
", Print, exec, grimblast copy area"
|
|
||||||
|
|
||||||
"$mod, e, exec, thunderbird"
|
"$mod, e, exec, thunderbird"
|
||||||
"$mod, r, exec, kitty -- zsh -c 'exec yazi; exec zsh'"
|
"$mod, r, exec, kitty -- zsh -c 'exec yazi; exec zsh'"
|
||||||
"$mod, b, exec, kitty -- zsh -c 'btop; exec zsh'"
|
"$mod, b, exec, kitty -- zsh -c 'exec btop; exec zsh'"
|
||||||
"$mod CTRL, n, exec, kitty --start-as=normal -- zsh -ic 'code ~/nixos-config && exit'"
|
"$mod CTRL, n, exec, kitty --start-as=normal -- zsh -ic 'code ~/nixos-config && exit'"
|
||||||
|
|
||||||
"$mod, i, exec, brave"
|
"$mod, i, exec, brave"
|
||||||
@ -77,9 +93,15 @@
|
|||||||
# Log out
|
# Log out
|
||||||
# "$mod, -, exec, hyprctl dispatch exit"
|
# "$mod, -, exec, hyprctl dispatch exit"
|
||||||
"$mod SHIFT ALT, x, exec, hyprctl dispatch exit"
|
"$mod SHIFT ALT, x, exec, hyprctl dispatch exit"
|
||||||
|
|
||||||
|
# Reload
|
||||||
|
"$mod SHIFT rLT, R, exec, hyprctl reload"
|
||||||
|
|
||||||
"$mod ALT, L, exec, hyprlock --immediate"
|
"$mod ALT, L, exec, hyprlock --immediate"
|
||||||
|
|
||||||
|
# Print whole screen
|
||||||
|
", Print, exec, grimblast copy screen"
|
||||||
|
|
||||||
# Shift+Print → select area and copy
|
# Shift+Print → select area and copy
|
||||||
"SHIFT, Print, exec, grimblast copy area"
|
"SHIFT, Print, exec, grimblast copy area"
|
||||||
|
|
||||||
@ -103,13 +125,34 @@
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
general = {
|
# doesn't work
|
||||||
layout = "master";
|
# workspace =
|
||||||
|
# builtins.genList (i: "DP-3, ${toString (i + 1)}") 9;
|
||||||
|
workspace = [
|
||||||
|
"1, monitor:DP-3, persistent:true"
|
||||||
|
"2, monitor:DP-3, persistent:true"
|
||||||
|
"3, monitor:DP-3, persistent:true"
|
||||||
|
"4, monitor:DP-3, persistent:true"
|
||||||
|
"5, monitor:DP-3, persistent:true"
|
||||||
|
"6, monitor:DP-3, persistent:true"
|
||||||
|
"7, monitor:DP-3, persistent:true"
|
||||||
|
];
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
preserve_split = true;
|
||||||
|
smart_resizing = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_out = 0;
|
||||||
|
gaps_in = 0;
|
||||||
|
# layout = "master";
|
||||||
|
layout = "dwindle";
|
||||||
};
|
};
|
||||||
|
|
||||||
windowrulev2 = [
|
windowrulev2 = [
|
||||||
"opacity 0.85, class:^(Code)$"
|
"opacity 0.85, class:^(Code)$"
|
||||||
"opacity 0.85, class:^(kitty)$"
|
"opacity 0.75, class:^(kitty)$"
|
||||||
];
|
];
|
||||||
|
|
||||||
# layerrule = [
|
# layerrule = [
|
||||||
@ -123,7 +166,7 @@
|
|||||||
|
|
||||||
blur = {
|
blur = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
size = 5;
|
size = 2;
|
||||||
passes = 2;
|
passes = 2;
|
||||||
brightness = 1;
|
brightness = 1;
|
||||||
contrast = 1.0;
|
contrast = 1.0;
|
||||||
@ -132,8 +175,8 @@
|
|||||||
new_optimizations = true;
|
new_optimizations = true;
|
||||||
# xray = true;
|
# xray = true;
|
||||||
};
|
};
|
||||||
blurls = "^(popup|menu)$";
|
|
||||||
|
|
||||||
|
blurls = "^(popup|menu)$";
|
||||||
|
|
||||||
shadow = {
|
shadow = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
@ -179,7 +222,7 @@
|
|||||||
exec-once = [
|
exec-once = [
|
||||||
# "sleep 2 && waybar &"
|
# "sleep 2 && waybar &"
|
||||||
"hypridle &"
|
"hypridle &"
|
||||||
# "waybar &"
|
"hyprpanel &"
|
||||||
"eval $(gnome-keyring-daemon --start --components=secrets,ssh,gpg)"
|
"eval $(gnome-keyring-daemon --start --components=secrets,ssh,gpg)"
|
||||||
# "hash dbus-update-activation-environment 2>/dev/null"
|
# "hash dbus-update-activation-environment 2>/dev/null"
|
||||||
# "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
# "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ inputs, pkgs, ... }:
|
{ config, inputs, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
@ -18,7 +18,7 @@
|
|||||||
background = [
|
background = [
|
||||||
{
|
{
|
||||||
monitor = "";
|
monitor = "";
|
||||||
path = "${./wallpapers/world_map_of_cpp_STL_algorithms.png}";
|
path = "${config.home.homeDirectory}/Pictures/wallpapers/City-Night.png";
|
||||||
blur_passes = 2;
|
blur_passes = 2;
|
||||||
contrast = 0.8916;
|
contrast = 0.8916;
|
||||||
brightness = 0.8172;
|
brightness = 0.8172;
|
||||||
|
65
home/hyprpanel-config.json
Normal file
65
home/hyprpanel-config.json
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"bar": {
|
||||||
|
"customModules": {
|
||||||
|
"hypridle": {
|
||||||
|
"isActiveCommand": "systemctl --user status hypridle.service | grep -q 'Active: active (running)' && echo 'yes' || echo 'no'",
|
||||||
|
"startCommand": "systemctl --user start hypridle.service",
|
||||||
|
"stopCommand": "systemctl --user stop hypridle.service"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"launcher": {
|
||||||
|
"autoDetectIcon": true
|
||||||
|
},
|
||||||
|
"workspaces": {
|
||||||
|
"show_icons": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layout": {
|
||||||
|
"bar": {
|
||||||
|
"layouts": {
|
||||||
|
"0": {
|
||||||
|
"left": [
|
||||||
|
"dashboard",
|
||||||
|
"workspaces"
|
||||||
|
],
|
||||||
|
"middle": [
|
||||||
|
"media"
|
||||||
|
],
|
||||||
|
"right": [
|
||||||
|
"volume",
|
||||||
|
"systray",
|
||||||
|
"notifications"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"menus": {
|
||||||
|
"clock": {
|
||||||
|
"time": {
|
||||||
|
"hideSeconds": true,
|
||||||
|
"military": true
|
||||||
|
},
|
||||||
|
"weather": {
|
||||||
|
"unit": "metric"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dashboard": {
|
||||||
|
"directories": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"enable_gpu": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"theme": {
|
||||||
|
"bar": {
|
||||||
|
"transparent": false
|
||||||
|
},
|
||||||
|
"font": {
|
||||||
|
"name": "CaskaydiaCove NF",
|
||||||
|
"size": "16px"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
35
home/hyprpanel-config.json.json
Normal file
35
home/hyprpanel-config.json.json
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"bar.customModules.storage.paths": [
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
"theme.font.name": "Monaspace Krypton",
|
||||||
|
"theme.font.label": "Monaspace Krypton Medium",
|
||||||
|
"theme.bar.floating": false,
|
||||||
|
"theme.bar.location": "bottom",
|
||||||
|
"bar.autoHide": "never",
|
||||||
|
"theme.bar.buttons.enableBorders": true,
|
||||||
|
"bar.workspaces.show_icons": false,
|
||||||
|
"bar.workspaces.show_numbered": false,
|
||||||
|
"bar.workspaces.workspaceMask": false,
|
||||||
|
"bar.workspaces.showWsIcons": true,
|
||||||
|
"bar.workspaces.showApplicationIcons": true,
|
||||||
|
"bar.workspaces.showAllActive": true,
|
||||||
|
"bar.network.showWifiInfo": true,
|
||||||
|
"bar.network.truncation_size": 6,
|
||||||
|
"theme.bar.buttons.network.enableBorder": false,
|
||||||
|
"bar.network.label": true,
|
||||||
|
"menus.media.displayTimeTooltip": true,
|
||||||
|
"menus.media.noMediaText": "Nathan rn",
|
||||||
|
"menus.clock.time.military": true,
|
||||||
|
"menus.clock.time.hideSeconds": false,
|
||||||
|
"theme.bar.transparent": false,
|
||||||
|
"theme.bar.opacity": 85,
|
||||||
|
"theme.bar.background": "#14003e",
|
||||||
|
"theme.bar.buttons.borderSize": "0.02em",
|
||||||
|
"theme.bar.buttons.monochrome": false,
|
||||||
|
"theme.bar.buttons.workspaces.occupied": "#00d0d0",
|
||||||
|
"theme.bar.buttons.workspaces.active": "#05ff00",
|
||||||
|
"theme.bar.buttons.workspaces.numbered_active_underline_color": "#00d0d0",
|
||||||
|
"theme.bar.buttons.windowtitle.text": "#00d0d0",
|
||||||
|
"theme.bar.buttons.windowtitle.icon": "#00ff19"
|
||||||
|
}
|
49
home/hyprpanel.nix
Normal file
49
home/hyprpanel.nix
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
programs.hyprpanel = {
|
||||||
|
enable = true;
|
||||||
|
# Configure and theme almost all options from the GUI.
|
||||||
|
# See 'https://hyprpanel.com/configuration/settings.html'.
|
||||||
|
# Default: <same as gui>
|
||||||
|
settings = {
|
||||||
|
|
||||||
|
# system = { bluetoothAgent = { enable = false; }; };
|
||||||
|
|
||||||
|
# Configure bar layouts for monitors.
|
||||||
|
# See 'https://hyprpanel.com/configuration/panel.html'.
|
||||||
|
# Default: null
|
||||||
|
layout = {
|
||||||
|
bar.layouts = {
|
||||||
|
"0" = {
|
||||||
|
left = [ "dashboard" "workspaces" ];
|
||||||
|
middle = [ "media" ];
|
||||||
|
right = [ "volume" "systray" "notifications" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
bar.launcher.autoDetectIcon = true;
|
||||||
|
bar.workspaces.show_icons = true;
|
||||||
|
|
||||||
|
# menus.bluetooth = { enable = false; };
|
||||||
|
menus.clock = {
|
||||||
|
time = {
|
||||||
|
military = true;
|
||||||
|
hideSeconds = true;
|
||||||
|
};
|
||||||
|
weather.unit = "metric";
|
||||||
|
};
|
||||||
|
|
||||||
|
menus.dashboard.directories.enabled = false;
|
||||||
|
menus.dashboard.stats.enable_gpu = true;
|
||||||
|
|
||||||
|
theme.bar.transparent = false;
|
||||||
|
|
||||||
|
theme.font = {
|
||||||
|
name = "CaskaydiaCove NF";
|
||||||
|
# name = "fira-code";
|
||||||
|
size = "16px";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
47
home/hyprpanel2.nix
Normal file
47
home/hyprpanel2.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
programs.hyprpanel = {
|
||||||
|
enable = false;
|
||||||
|
settings = {
|
||||||
|
bar = {
|
||||||
|
customModules.hypridle = {
|
||||||
|
isActiveCommand = "systemctl --user status hypridle.service | grep -q 'Active: active (running)' && echo 'yes' || echo 'no'";
|
||||||
|
startCommand = "systemctl --user start hypridle.service";
|
||||||
|
stopCommand = "systemctl --user stop hypridle.service";
|
||||||
|
};
|
||||||
|
|
||||||
|
launcher.autoDetectIcon = true;
|
||||||
|
workspaces.show_icons = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
layout.bar.layouts."0" = {
|
||||||
|
left = [ "dashboard" "workspaces" ];
|
||||||
|
middle = [ "media" ];
|
||||||
|
right = [ "volume" "systray" "notifications" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
menus = {
|
||||||
|
clock = {
|
||||||
|
time = {
|
||||||
|
hideSeconds = true;
|
||||||
|
military = true;
|
||||||
|
};
|
||||||
|
weather.unit = "metric";
|
||||||
|
};
|
||||||
|
|
||||||
|
dashboard = {
|
||||||
|
directories.enabled = false;
|
||||||
|
stats.enable_gpu = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
bar.transparent = false;
|
||||||
|
font = {
|
||||||
|
name = "Monaspace Krypton"; # likely "CaskaydiaCove Nerd Font" in fontconfig
|
||||||
|
size = "16px";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
95
home/hyprpanel3.nix
Normal file
95
home/hyprpanel3.nix
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.hyprpanel = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
bar = {
|
||||||
|
layouts = {
|
||||||
|
"0" = {
|
||||||
|
left = [ "dashboard" "workspaces" ];
|
||||||
|
middle = [ "media" ];
|
||||||
|
right = [ "volume" "systray" "notifications" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
launcher.autoDetectIcon = true;
|
||||||
|
customModules.storage.paths = [ "/" ];
|
||||||
|
autoHide = "never";
|
||||||
|
|
||||||
|
workspaces = {
|
||||||
|
show_icons = true;
|
||||||
|
show_numbered = false;
|
||||||
|
workspaceMask = false;
|
||||||
|
showWsIcons = true;
|
||||||
|
showApplicationIcons = true;
|
||||||
|
showAllActive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
network = {
|
||||||
|
showWifiInfo = true;
|
||||||
|
truncation_size = 6;
|
||||||
|
label = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
menus = {
|
||||||
|
media = {
|
||||||
|
displayTimeTooltip = true;
|
||||||
|
noMediaText = "Nathan rn";
|
||||||
|
};
|
||||||
|
clock.time = {
|
||||||
|
military = true;
|
||||||
|
hideSeconds = false;
|
||||||
|
};
|
||||||
|
dashboard.controls.enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
matugen = false;
|
||||||
|
|
||||||
|
font = {
|
||||||
|
name = "Monaspace Krypton";
|
||||||
|
label = "Monaspace Krypton Medium";
|
||||||
|
};
|
||||||
|
|
||||||
|
bar = {
|
||||||
|
floating = false;
|
||||||
|
location = "bottom";
|
||||||
|
transparent = false;
|
||||||
|
opacity = 90;
|
||||||
|
background = "#241f31";
|
||||||
|
|
||||||
|
buttons = {
|
||||||
|
enableBorders = true;
|
||||||
|
borderSize = "0.02em";
|
||||||
|
monochrome = false;
|
||||||
|
|
||||||
|
workspaces = {
|
||||||
|
occupied = "#00d0d0";
|
||||||
|
active = "#05ff00";
|
||||||
|
numbered_active_underline_color = "#00d0d0";
|
||||||
|
};
|
||||||
|
|
||||||
|
windowtitle = {
|
||||||
|
text = "#00d0d0";
|
||||||
|
icon = "#00ff19";
|
||||||
|
};
|
||||||
|
|
||||||
|
network.enableBorder = false;
|
||||||
|
|
||||||
|
modules = {
|
||||||
|
hypridle.enableBorder = true;
|
||||||
|
cava.enableBorder = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
menus.menu.media = {
|
||||||
|
slider.primary = "#00e2c5";
|
||||||
|
artist = "#50ff00";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -14,11 +14,11 @@
|
|||||||
ipc = "on";
|
ipc = "on";
|
||||||
splash = false;
|
splash = false;
|
||||||
preload = [
|
preload = [
|
||||||
"/home/xbazzi/Pictures/wallpapers/Fantasy-Landscape2.png"
|
"/home/xbazzi/Pictures/wallpapers/cities"
|
||||||
];
|
];
|
||||||
|
|
||||||
wallpaper = [
|
wallpaper = [
|
||||||
",/home/xbazzi/Pictures/wallpapers/Fantasy-Landscape2.png"
|
",/home/xbazzi/Pictures/wallpapers/Fantasy-Lake1.png"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
26
home/notify.nix
Normal file
26
home/notify.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{pkgs, ...}: let
|
||||||
|
notif =
|
||||||
|
pkgs.writeShellScriptBin "notif" # bash
|
||||||
|
|
||||||
|
''
|
||||||
|
# Shell script to send custom notifications
|
||||||
|
# Usage: notif "sender_id" "message" ["description"]
|
||||||
|
NOTIF_FOLDER="/tmp/notif"
|
||||||
|
sender_id=$1 # To overwrite existing notifications
|
||||||
|
title=$2
|
||||||
|
description=$3
|
||||||
|
|
||||||
|
[[ -d "$NOTIF_FOLDER" ]] || mkdir $NOTIF_FOLDER
|
||||||
|
[[ -f "$NOTIF_FOLDER/$sender_id" ]] || (echo "0" > "$NOTIF_FOLDER/$sender_id")
|
||||||
|
|
||||||
|
old_notification_id=$(cat "$NOTIF_FOLDER/$sender_id")
|
||||||
|
[[ -z "$old_notification_id" ]] && old_notification_id=0
|
||||||
|
|
||||||
|
${pkgs.libnotify}/bin/notify-send \
|
||||||
|
--replace-id="$old_notification_id" --print-id \
|
||||||
|
--app-name="$sender_id" \
|
||||||
|
"$title" \
|
||||||
|
"$description" \
|
||||||
|
> "$NOTIF_FOLDER/$sender_id"
|
||||||
|
'';
|
||||||
|
in {home.packages = [pkgs.libnotify notif];}
|
@ -4,20 +4,26 @@
|
|||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
hello
|
hello
|
||||||
tmux
|
tmux
|
||||||
# gnomeExtensions.appindicator
|
gnome-keyring
|
||||||
wofi
|
|
||||||
# waybar
|
|
||||||
# eww
|
|
||||||
# gnome-keyring
|
|
||||||
libsecret
|
libsecret
|
||||||
grim # for screenshots
|
grim # for screenshots
|
||||||
slurp # for selecting area
|
slurp # for selecting area
|
||||||
grimblast # easier syntax for grim+slurp
|
grimblast # easier syntax for grim+slurp
|
||||||
wl-clipboard # copy screenshot to clipboard
|
wl-clipboard # copy screenshot to clipboard
|
||||||
|
bat
|
||||||
|
yazi
|
||||||
|
|
||||||
|
# Hyprland
|
||||||
hypridle
|
hypridle
|
||||||
hyprlock
|
hyprlock
|
||||||
# (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
hyprpanel
|
||||||
|
wofi
|
||||||
|
|
||||||
|
# Old stuff for documentation
|
||||||
|
# gnomeExtensions.appindicator
|
||||||
|
# waybar
|
||||||
|
# eww
|
||||||
|
# (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
||||||
#zsh-powerlevel10k
|
#zsh-powerlevel10k
|
||||||
#inputs.nixvim.packages.${pkgs.system}.default
|
#inputs.nixvim.packages.${pkgs.system}.default
|
||||||
];
|
];
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = [ pkgs.quickshell ];
|
home.packages = with pkgs; [
|
||||||
|
quickshell
|
||||||
|
];
|
||||||
|
|
||||||
home.file.".config/quickshell" = {
|
home.file.".config/quickshell" = {
|
||||||
source = ./quickshell;
|
source = ./quickshell;
|
||||||
@ -9,15 +11,15 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# start it when Hyprland starts
|
# start it when Hyprland starts
|
||||||
wayland.windowManager.hyprland.settings.exec-once = [
|
# wayland.windowManager.hyprland.settings.exec-once = [
|
||||||
"quickshell -c default"
|
# "quickshell -c default"
|
||||||
];
|
# ];
|
||||||
|
|
||||||
# auto reload
|
# auto reload
|
||||||
systemd.user.services.quickshell = {
|
systemd.user.services.quickshell = {
|
||||||
Unit = { Description = "Quickshell bar"; PartOf = [ "graphical-session.target" ]; };
|
Unit = { Description = "Quickshell bar"; PartOf = [ "graphical-session.target" ]; };
|
||||||
Service = {
|
Service = {
|
||||||
ExecStart = "${pkgs.quickshell}/bin/quickshell -c default";
|
ExecStart = "${pkgs.quickshell}/bin/quickshell -c hyprshell";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
};
|
};
|
||||||
Install = { WantedBy = [ "default.target" ]; };
|
Install = { WantedBy = [ "default.target" ]; };
|
||||||
|
46
home/quickshell/defaultOLD/bars/TopBar.qml
Normal file
46
home/quickshell/defaultOLD/bars/TopBar.qml
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import "../widgets"
|
||||||
|
import "./modules"
|
||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
|
||||||
|
PanelWindow {
|
||||||
|
property int defaultMargin: 0
|
||||||
|
|
||||||
|
implicitHeight: 40
|
||||||
|
margins.top: defaultMargin
|
||||||
|
margins.left: defaultMargin
|
||||||
|
margins.right: defaultMargin
|
||||||
|
margins.bottom: defaultMargin
|
||||||
|
aboveWindows: true
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: true
|
||||||
|
left: true
|
||||||
|
right: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
color: "#000000"
|
||||||
|
}
|
||||||
|
|
||||||
|
Clock {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
// Workspaces
|
||||||
|
HyprlandWorkspaces {
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
// Right side - Volume button
|
||||||
|
VolumeMixer {
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
18
home/quickshell/defaultOLD/bars/modules/Clock.qml
Normal file
18
home/quickshell/defaultOLD/bars/modules/Clock.qml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
|
||||||
|
Item {
|
||||||
|
SystemClock {
|
||||||
|
id: clock
|
||||||
|
|
||||||
|
precision: SystemClock.Seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
color: "#ffffff"
|
||||||
|
text: Qt.formatDateTime(clock.date, "ddd MMM d h:m ap")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
24
home/quickshell/defaultOLD/shell.qml
Normal file
24
home/quickshell/defaultOLD/shell.qml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import "./bars"
|
||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
|
||||||
|
ShellRoot {
|
||||||
|
// PanelWindow {
|
||||||
|
// exclusiveZone: 0
|
||||||
|
// implicitWidth: 600
|
||||||
|
// implicitHeight: 300
|
||||||
|
// anchors.top: true
|
||||||
|
// Rectangle {
|
||||||
|
// anchors.fill: parent
|
||||||
|
// color: "black"
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
//model: Quickshell.screens
|
||||||
|
|
||||||
|
TopBar {
|
||||||
|
//required property var modelData
|
||||||
|
//screen: modelData
|
||||||
|
}
|
||||||
|
}
|
37
home/quickshell/defaultOLD/widgets/HyprlandWorkspaces.qml
Normal file
37
home/quickshell/defaultOLD/widgets/HyprlandWorkspaces.qml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Hyprland
|
||||||
|
import Quickshell.Io
|
||||||
|
|
||||||
|
Row {
|
||||||
|
spacing: 1
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
showEmpty: false
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: 10
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: Hyprland.workspaces
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
visible: modelData.id > 0 // "Magic" workspaces have IDs < 0
|
||||||
|
width: 30
|
||||||
|
height: 30
|
||||||
|
color: modelData.focused ? "#ffffff" : "transparent"
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: modelData.id.toString()
|
||||||
|
color: modelData.focused ? "#000000" : "#ffffff"
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: modelData.activate()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
101
home/quickshell/defaultOLD/widgets/VolumeMixer.qml
Normal file
101
home/quickshell/defaultOLD/widgets/VolumeMixer.qml
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Services.Pipewire
|
||||||
|
import Quickshell.Widgets
|
||||||
|
|
||||||
|
Item {
|
||||||
|
property bool showPopup: false
|
||||||
|
// Get the default audio sink
|
||||||
|
property var audioSink: Pipewire.defaultAudioSink
|
||||||
|
|
||||||
|
implicitWidth: volumeButton.width + 20
|
||||||
|
|
||||||
|
PwObjectTracker {
|
||||||
|
objects: [audioSink]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Volume icon button
|
||||||
|
Rectangle {
|
||||||
|
// text height + 10px padding
|
||||||
|
|
||||||
|
id: volumeButton
|
||||||
|
|
||||||
|
color: Pipewire.ready ? "transparent" : "red"
|
||||||
|
width: volumeText.implicitWidth + 20
|
||||||
|
height: volumeText.implicitHeight + 10
|
||||||
|
anchors.centerIn: parent
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: volumeText
|
||||||
|
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: `Vol: ${Math.floor(audioSink.audio.volume * 100)}%`
|
||||||
|
color: "white"
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
showPopup = !showPopup;
|
||||||
|
console.log("Volume clicked, showPopup:", showPopup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Floating volume popup window
|
||||||
|
PanelWindow {
|
||||||
|
id: volumePopup
|
||||||
|
|
||||||
|
visible: showPopup
|
||||||
|
exclusiveZone: 0
|
||||||
|
implicitWidth: 500
|
||||||
|
implicitHeight: 100
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.top: parent.top
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
color: "black"
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: 30
|
||||||
|
spacing: 10
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
Label {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
text: `${audioSink.description}`
|
||||||
|
color: "white"
|
||||||
|
font.pixelSize: 16
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
spacing: 10
|
||||||
|
|
||||||
|
Label {
|
||||||
|
text: `${Math.floor(audioSink.audio.volume * 100)}%`
|
||||||
|
color: "white"
|
||||||
|
font.pixelSize: 16
|
||||||
|
}
|
||||||
|
|
||||||
|
Slider {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
value: audioSink.audio.volume
|
||||||
|
onValueChanged: audioSink.audio.volume = value
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,50 +0,0 @@
|
|||||||
import Quickshell
|
|
||||||
import Quickshell.Io
|
|
||||||
import QtQuick
|
|
||||||
|
|
||||||
// one window per screen
|
|
||||||
Variants {
|
|
||||||
model: Quickshell.screens
|
|
||||||
delegate: Component {
|
|
||||||
PanelWindow {
|
|
||||||
required property var modelData
|
|
||||||
screen: modelData
|
|
||||||
|
|
||||||
// top bar, full width
|
|
||||||
anchors.top: true
|
|
||||||
anchors.left: true
|
|
||||||
anchors.right: true
|
|
||||||
implicitHeight: 30 // tweak height if yuh want
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
color: "#1a1a1a"
|
|
||||||
opacity: 0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
// center clock
|
|
||||||
Text {
|
|
||||||
id: clock
|
|
||||||
anchors.centerIn: parent
|
|
||||||
font.pixelSize: 13
|
|
||||||
color: "#e6e6e6"
|
|
||||||
}
|
|
||||||
|
|
||||||
// update clock every second using `date`
|
|
||||||
Process {
|
|
||||||
id: dateProc
|
|
||||||
command: [ "date", "+%a %b %d %H:%M:%S" ]
|
|
||||||
running: true
|
|
||||||
stdout: StdioCollector {
|
|
||||||
onStreamFinished: clock.text = this.text.trim()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Timer {
|
|
||||||
interval: 1000
|
|
||||||
running: true
|
|
||||||
repeat: true
|
|
||||||
onTriggered: dateProc.running = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
120
home/quickshell/shell.qml.old
Normal file
120
home/quickshell/shell.qml.old
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
import QtQuick
|
||||||
|
|
||||||
|
// one window per screen
|
||||||
|
Variants {
|
||||||
|
model: Quickshell.screens
|
||||||
|
delegate: Component {
|
||||||
|
PanelWindow {
|
||||||
|
required property var modelData
|
||||||
|
screen: modelData
|
||||||
|
|
||||||
|
// top bar, full width
|
||||||
|
anchors.top: true
|
||||||
|
anchors.left: true
|
||||||
|
anchors.right: true
|
||||||
|
implicitHeight: 30 // tweak height if yuh want
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
color: "#1a1a1a"
|
||||||
|
opacity: 0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
// === Workspaces (top-left) ===
|
||||||
|
Row {
|
||||||
|
id: wsBar
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: 8
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
spacing: 6
|
||||||
|
|
||||||
|
// dynamic list of workspace IDs (fallback to 1..10)
|
||||||
|
property var ids: [1,2,3,4,5,6,7,8,9,10]
|
||||||
|
property int active: 1
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: ids.length
|
||||||
|
delegate: Rectangle {
|
||||||
|
property int idx: wsBar.ids[index]
|
||||||
|
width: 22; height: 16; radius: 5
|
||||||
|
color: (wsBar.active === idx) ? "#2e7d32" : "#303030"
|
||||||
|
border.width: 1
|
||||||
|
border.color: (wsBar.active === idx) ? "#4caf50" : "#444444"
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: idx
|
||||||
|
color: "#eaeaea"
|
||||||
|
font.pixelSize: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
var p = Qt.createQmlObject('import Quickshell; Process {}', parent)
|
||||||
|
p.command = ["hyprctl","dispatch","workspace", String(idx)]
|
||||||
|
p.running = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// poll active workspace + known workspaces (needs jq in PATH)
|
||||||
|
Timer {
|
||||||
|
interval: 700; running: true; repeat: true
|
||||||
|
onTriggered: {
|
||||||
|
// active ws
|
||||||
|
var p1 = Qt.createQmlObject(
|
||||||
|
'import Quickshell; import Quickshell.Io; Process { stdout: StdioCollector{} }', wsBar)
|
||||||
|
p1.command = ["bash","-lc","hyprctl activeworkspace -j | jq -r .id"]
|
||||||
|
p1.running = true
|
||||||
|
p1.stdout.onStreamFinished.connect(function() {
|
||||||
|
var v = parseInt(p1.stdout.text.trim())
|
||||||
|
if (!isNaN(v)) wsBar.active = v
|
||||||
|
})
|
||||||
|
|
||||||
|
// list of existing ws ids (sorted)
|
||||||
|
var p2 = Qt.createQmlObject(
|
||||||
|
'import Quickshell; import Quickshell.Io; Process { stdout: StdioCollector{} }', wsBar)
|
||||||
|
p2.command = ["bash","-lc","hyprctl workspaces -j | jq -r '.[].id' | sort -n | tr '\\n' ' '"]
|
||||||
|
p2.running = true
|
||||||
|
p2.stdout.onStreamFinished.connect(function() {
|
||||||
|
var s = p2.stdout.text.trim()
|
||||||
|
if (s.length > 0) {
|
||||||
|
var arr = s.split(/\\s+/).map(function(x){ return parseInt(x) })
|
||||||
|
.filter(function(x){ return !isNaN(x) })
|
||||||
|
if (arr.length > 0) wsBar.ids = arr
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// center clock
|
||||||
|
Text {
|
||||||
|
id: clock
|
||||||
|
anchors.centerIn: parent
|
||||||
|
font.pixelSize: 13
|
||||||
|
color: "#e6e6e6"
|
||||||
|
}
|
||||||
|
|
||||||
|
// update clock every second using `date`
|
||||||
|
Process {
|
||||||
|
id: dateProc
|
||||||
|
command: [ "date", "+%a %b %d %H:%M:%S" ]
|
||||||
|
running: true
|
||||||
|
stdout: StdioCollector {
|
||||||
|
onStreamFinished: clock.text = this.text.trim()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Timer {
|
||||||
|
interval: 1000
|
||||||
|
running: true
|
||||||
|
repeat: true
|
||||||
|
onTriggered: dateProc.running = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
56
home/yazi.nix
Executable file
56
home/yazi.nix
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
programs.yazi = {
|
||||||
|
enable = true;
|
||||||
|
# keymap = {
|
||||||
|
# mgr.prepend_keymap = [
|
||||||
|
# {
|
||||||
|
# on = [
|
||||||
|
# "b"
|
||||||
|
# "g"
|
||||||
|
# ];
|
||||||
|
# run = "shell 'hyprctl hyprpaper preload \"$0\" && hyprctl hyprpaper wallpaper \",$0\"";
|
||||||
|
# desc = "Set img as wallpaper";
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
keymap = {
|
||||||
|
manager.prepend_keymap = [
|
||||||
|
{
|
||||||
|
on = [
|
||||||
|
"b"
|
||||||
|
"g"
|
||||||
|
];
|
||||||
|
run = "shell 'hyprctl hyprpaper preload \"$0\" && hyprctl hyprpaper wallpaper \", $0\"'";
|
||||||
|
desc = "Set as wallpaper";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
yazi = {
|
||||||
|
ratio = [
|
||||||
|
1
|
||||||
|
4
|
||||||
|
3
|
||||||
|
];
|
||||||
|
sort_by = "natural";
|
||||||
|
sort_sensitive = true;
|
||||||
|
sort_reverse = false;
|
||||||
|
sort_dir_first = true;
|
||||||
|
linemode = "none";
|
||||||
|
show_hidden = true;
|
||||||
|
show_symlink = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# tasks = {
|
||||||
|
# micro_workers = 5;
|
||||||
|
# macro_workers = 10;
|
||||||
|
# bizarre_retry = 5;
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -13,6 +13,7 @@
|
|||||||
autosuggestion.enable = true;
|
autosuggestion.enable = true;
|
||||||
syntaxHighlighting.enable = true;
|
syntaxHighlighting.enable = true;
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
|
source ${pkgs.nix-index}/etc/profile.d/command-not-found.sh
|
||||||
export TERM=xterm-kitty
|
export TERM=xterm-kitty
|
||||||
bindkey -e
|
bindkey -e
|
||||||
|
|
||||||
@ -79,6 +80,12 @@
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
# la="eza -s modified -r -lh";
|
# la="eza -s modified -r -lh";
|
||||||
|
fonts = "fc-list : family ";
|
||||||
|
|
||||||
|
workspaces = "hyprctl -j workspaces | jq '.[] | {id, monitor, windows, active}'";
|
||||||
|
reboot = ''echo "Nice try. Use \`sudo /run/current-system/sw/bin/reboot\` instead."'';
|
||||||
|
reboot-foreal = "sudo /run/current-system/sw/bin/reboot now";
|
||||||
|
cat = " bat";
|
||||||
cb = "cmake -B build -S . && cmake --build build -j$(nproc)";
|
cb = "cmake -B build -S . && cmake --build build -j$(nproc)";
|
||||||
la = "eza -s modified -lhr --icons --git";
|
la = "eza -s modified -lhr --icons --git";
|
||||||
ls = "eza -lh --group-directories-first --icons --git";
|
ls = "eza -lh --group-directories-first --icons --git";
|
||||||
|
@ -14,6 +14,11 @@
|
|||||||
"flakes"
|
"flakes"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Graphics
|
||||||
|
hardware.graphics.enable = true;
|
||||||
|
hardware.graphics.enable32Bit = true;
|
||||||
|
|
||||||
|
|
||||||
# OpenRGB
|
# OpenRGB
|
||||||
services.hardware.openrgb.enable = true;
|
services.hardware.openrgb.enable = true;
|
||||||
|
|
||||||
@ -32,7 +37,7 @@
|
|||||||
# command = "${pkgs.greetd.gtkgreet}/bin/gtkgreet -c 'Hyprland'";
|
# command = "${pkgs.greetd.gtkgreet}/bin/gtkgreet -c 'Hyprland'";
|
||||||
|
|
||||||
# TUI greeter
|
# TUI greeter
|
||||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember \
|
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember \
|
||||||
--cmd 'dbus-run-session ${pkgs.hyprland}/bin/Hyprland'";
|
--cmd 'dbus-run-session ${pkgs.hyprland}/bin/Hyprland'";
|
||||||
user = "greeter";
|
user = "greeter";
|
||||||
};
|
};
|
||||||
@ -134,6 +139,8 @@
|
|||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Xander Bazzi";
|
description = "Xander Bazzi";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
|
"video"
|
||||||
|
"render"
|
||||||
"docker"
|
"docker"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"wheel"
|
"wheel"
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
# ./stylix.nix
|
# ./stylix.nix
|
||||||
# ./gnome.nix
|
# ./gnome.nix
|
||||||
# ./lanzaboote.nix
|
# ./lanzaboote.nix
|
||||||
./yazi.nix
|
|
||||||
./nvidia.nix
|
./nvidia.nix
|
||||||
./network.nix
|
./network.nix
|
||||||
./nfs.nix
|
./nfs.nix
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# modrinth-app
|
# modrinth-app
|
||||||
|
gnumake
|
||||||
ansible
|
ansible
|
||||||
niv
|
niv
|
||||||
sbctl
|
sbctl
|
||||||
vim
|
vim
|
||||||
wget
|
wget
|
||||||
xournalpp
|
xournalpp
|
||||||
|
zathura
|
||||||
obsidian
|
obsidian
|
||||||
libreoffice-qt
|
libreoffice-qt
|
||||||
hunspell
|
hunspell
|
||||||
@ -16,7 +18,6 @@
|
|||||||
git
|
git
|
||||||
fastfetch
|
fastfetch
|
||||||
wget
|
wget
|
||||||
#discord-canary
|
|
||||||
vesktop
|
vesktop
|
||||||
discord
|
discord
|
||||||
cudaPackages_12.cudatoolkit
|
cudaPackages_12.cudatoolkit
|
||||||
@ -27,17 +28,16 @@
|
|||||||
gparted
|
gparted
|
||||||
htop
|
htop
|
||||||
btop
|
btop
|
||||||
yazi
|
|
||||||
#google-chrome
|
|
||||||
dig
|
dig
|
||||||
|
# netstat-net-tools
|
||||||
prismlauncher
|
prismlauncher
|
||||||
inetutils
|
inetutils
|
||||||
ansible-builder
|
ansible-builder
|
||||||
|
nix-index
|
||||||
ansible-lint
|
ansible-lint
|
||||||
hollywood
|
hollywood
|
||||||
cmatrix
|
cmatrix
|
||||||
nmap
|
nmap
|
||||||
#intellephense
|
|
||||||
brave
|
brave
|
||||||
ffmpeg
|
ffmpeg
|
||||||
variety
|
variety
|
||||||
@ -50,21 +50,26 @@
|
|||||||
openssl
|
openssl
|
||||||
tree
|
tree
|
||||||
screenkey
|
screenkey
|
||||||
# firefox
|
|
||||||
direnv
|
direnv
|
||||||
jq
|
jq
|
||||||
nixfmt
|
nixfmt
|
||||||
|
unzip
|
||||||
|
nettools
|
||||||
|
|
||||||
# Hyprland Ecosystem
|
# Hyprland Ecosystem
|
||||||
hyprpaper
|
hyprpaper
|
||||||
hyprpicker
|
hyprpicker
|
||||||
hyprpolkitagent
|
hyprpolkitagent
|
||||||
hyprsunset
|
hyprsunset
|
||||||
|
|
||||||
(pkgs.hyprland.override {
|
(pkgs.hyprland.override {
|
||||||
enableXWayland = true;
|
enableXWayland = true;
|
||||||
withSystemd = true;
|
withSystemd = true;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# Qt
|
||||||
|
# kdePackages.qt5compat
|
||||||
|
# libsForQt5.qt5.qtgraphicaleffects
|
||||||
|
# libsForQt5.qt5.qtdeclarative
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.nix-ld.enable = true;
|
programs.nix-ld.enable = true;
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
programs.yazi = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
yazi = {
|
|
||||||
ratio = [
|
|
||||||
1
|
|
||||||
4
|
|
||||||
3
|
|
||||||
];
|
|
||||||
sort_by = "natural";
|
|
||||||
sort_sensitive = true;
|
|
||||||
sort_reverse = false;
|
|
||||||
sort_dir_first = true;
|
|
||||||
linemode = "none";
|
|
||||||
show_hidden = true;
|
|
||||||
show_symlink = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# tasks = {
|
|
||||||
# micro_workers = 5;
|
|
||||||
# macro_workers = 10;
|
|
||||||
# bizarre_retry = 5;
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user