feat: waybar modulization
This commit is contained in:
parent
6fddac69d2
commit
94c073c28a
15 changed files with 669 additions and 416 deletions
85
flake.nix
85
flake.nix
|
|
@ -110,12 +110,12 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
# Can leave monitors empty if only has one monitors
|
# Leave empty if you only have one monitor
|
||||||
# This is for assign workspace to a specific monitor
|
# This is for assign workspace to a specific monitor
|
||||||
# e.g. 1, 3, 5 for "DP-3"; 2, 4, 6 for "HDMI-A-2"
|
# e.g. 1, 3, 5 for the first one; 2, 4, 6 for the second one
|
||||||
monitors = [
|
monitors = [
|
||||||
"DP-3"
|
"desc:ASUSTek COMPUTER INC ASUS VG32VQ1B 0x00002271"
|
||||||
"HDMI-A-2"
|
"desc:Acer Technologies XV272U V3 1322131231233"
|
||||||
];
|
];
|
||||||
cursor-size = 32;
|
cursor-size = 32;
|
||||||
xcursor-size = 24;
|
xcursor-size = 24;
|
||||||
|
|
@ -152,9 +152,9 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
# Can leave monitors empty if only has one monitors
|
# Leave empty if you only have one monitor
|
||||||
# This is for assign workspace to a specific monitor
|
# This is for assign workspace to a specific monitor
|
||||||
# e.g. 1, 3, 5 for "DP-3"; 2, 4, 6 for "HDMI-A-2"
|
# e.g. 1, 3, 5 for the first one; 2, 4, 6 for the second one
|
||||||
monitors = [ ];
|
monitors = [ ];
|
||||||
cursor-size = 32;
|
cursor-size = 32;
|
||||||
xcursor-size = 24;
|
xcursor-size = 24;
|
||||||
|
|
@ -181,9 +181,9 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
# Can leave monitors empty if only has one monitors
|
# Leave empty if you only have one monitor
|
||||||
# This is for assign workspace to a specific monitor
|
# This is for assign workspace to a specific monitor
|
||||||
# e.g. 1, 3, 5 for "DP-3"; 2, 4, 6 for "HDMI-A-2"
|
# e.g. 1, 3, 5 for the first one; 2, 4, 6 for the second one
|
||||||
monitors = [ ];
|
monitors = [ ];
|
||||||
cursor-size = 32;
|
cursor-size = 32;
|
||||||
xcursor-size = 24;
|
xcursor-size = 24;
|
||||||
|
|
@ -220,44 +220,39 @@
|
||||||
nixpkgs.lib.nixosSystem {
|
nixpkgs.lib.nixosSystem {
|
||||||
modules =
|
modules =
|
||||||
[
|
[
|
||||||
(
|
{
|
||||||
{ config, ... }:
|
system.stateVersion = nix-version;
|
||||||
{
|
home-manager = {
|
||||||
system.stateVersion = nix-version;
|
backupFileExtension = "backup";
|
||||||
home-manager = {
|
useUserPackages = true;
|
||||||
backupFileExtension = "backup";
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
extraSpecialArgs = {
|
||||||
useGlobalPkgs = true;
|
inherit
|
||||||
extraSpecialArgs = {
|
inputs
|
||||||
inherit
|
system
|
||||||
inputs
|
nix-version
|
||||||
system
|
settings
|
||||||
nix-version
|
;
|
||||||
settings
|
|
||||||
;
|
|
||||||
};
|
|
||||||
users."${username}" = {
|
|
||||||
imports = [
|
|
||||||
inputs.hyprland.homeManagerModules.default
|
|
||||||
{
|
|
||||||
home = {
|
|
||||||
homeDirectory = "/home/${username}";
|
|
||||||
stateVersion = nix-version;
|
|
||||||
};
|
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
networking.hostName = hostname;
|
users."${username}" = {
|
||||||
nixpkgs.hostPlatform = system;
|
imports = [
|
||||||
nixpkgs.config.allowUnfree = true;
|
inputs.hyprland.homeManagerModules.default
|
||||||
nixpkgs.overlays = [
|
{
|
||||||
(import ./pkgs/overlays { inherit config; })
|
home = {
|
||||||
] ++ conf.overlays;
|
homeDirectory = "/home/${username}";
|
||||||
}
|
stateVersion = nix-version;
|
||||||
)
|
};
|
||||||
|
# Let Home Manager install and manage itself.
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
networking.hostName = hostname;
|
||||||
|
nixpkgs.hostPlatform = system;
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
nixpkgs.overlays = ((import ./pkgs/overlays) ++ conf.overlays);
|
||||||
|
}
|
||||||
]
|
]
|
||||||
++ common-settings.modules
|
++ common-settings.modules
|
||||||
++ conf.extra-modules;
|
++ conf.extra-modules;
|
||||||
|
|
|
||||||
|
|
@ -1,96 +0,0 @@
|
||||||
[
|
|
||||||
// Primary
|
|
||||||
{
|
|
||||||
"output": "DP-3",
|
|
||||||
"include": "~/.config/waybar/modules.jsonc",
|
|
||||||
"layer": "top",
|
|
||||||
"exclusive": true,
|
|
||||||
"passthrough": false,
|
|
||||||
"position": "top",
|
|
||||||
"fixed-center": true,
|
|
||||||
"ipc": true,
|
|
||||||
"margin-top": 0,
|
|
||||||
"margin-left": 0,
|
|
||||||
"margin-right": 0,
|
|
||||||
"margin-bottom": 0,
|
|
||||||
|
|
||||||
"modules-left": [
|
|
||||||
"custom/os",
|
|
||||||
"hyprland/workspaces",
|
|
||||||
"clock",
|
|
||||||
"custom/cava",
|
|
||||||
"mpris"
|
|
||||||
],
|
|
||||||
|
|
||||||
"modules-center": ["hyprland/window"],
|
|
||||||
|
|
||||||
"modules-right": [
|
|
||||||
"wlr/taskbar",
|
|
||||||
"custom/wireguard",
|
|
||||||
"idle_inhibitor",
|
|
||||||
"network",
|
|
||||||
"cpu",
|
|
||||||
"memory",
|
|
||||||
"pulseaudio",
|
|
||||||
"custom/swaync"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
// Secondary
|
|
||||||
{
|
|
||||||
"output": "HDMI-A-2",
|
|
||||||
"include": "~/.config/waybar/modules.jsonc",
|
|
||||||
"layer": "top",
|
|
||||||
"exclusive": true,
|
|
||||||
"height": 54,
|
|
||||||
"passthrough": false,
|
|
||||||
"position": "top",
|
|
||||||
"fixed-center": true,
|
|
||||||
"ipc": true,
|
|
||||||
"margin-top": 0,
|
|
||||||
"margin-left": 0,
|
|
||||||
"margin-right": 0,
|
|
||||||
"margin-bottom": 0,
|
|
||||||
|
|
||||||
"modules-left": ["clock", "mpris"],
|
|
||||||
|
|
||||||
"modules-center": ["hyprland/window"],
|
|
||||||
|
|
||||||
"modules-right": [
|
|
||||||
"wlr/taskbar",
|
|
||||||
"temperature",
|
|
||||||
"cpu",
|
|
||||||
"memory",
|
|
||||||
"pulseaudio"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
// Laptop
|
|
||||||
{
|
|
||||||
"output": "eDP-1",
|
|
||||||
"include": "~/.config/waybar/modules.jsonc",
|
|
||||||
"layer": "top",
|
|
||||||
"exclusive": true,
|
|
||||||
"passthrough": false,
|
|
||||||
"position": "top",
|
|
||||||
"fixed-center": true,
|
|
||||||
"ipc": true,
|
|
||||||
"margin-top": 0,
|
|
||||||
"margin-left": 0,
|
|
||||||
"margin-right": 0,
|
|
||||||
"margin-bottom": 0,
|
|
||||||
|
|
||||||
"modules-left": ["custom/os", "hyprland/workspaces", "clock", "mpris"],
|
|
||||||
|
|
||||||
"modules-center": ["hyprland/window"],
|
|
||||||
|
|
||||||
"modules-right": [
|
|
||||||
"wlr/taskbar",
|
|
||||||
"temperature",
|
|
||||||
"custom/wireguard",
|
|
||||||
"idle_inhibitor",
|
|
||||||
"network",
|
|
||||||
"pulseaudio",
|
|
||||||
"battery",
|
|
||||||
"custom/swaync"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
142
home/config/waybar/config.nix
Normal file
142
home/config/waybar/config.nix
Normal file
|
|
@ -0,0 +1,142 @@
|
||||||
|
{ terminal }:
|
||||||
|
let
|
||||||
|
modulesConfig = import ./modules.nix { inherit terminal; };
|
||||||
|
in
|
||||||
|
map (dev: dev // modulesConfig) [
|
||||||
|
# Monitor 1
|
||||||
|
{
|
||||||
|
output = "DP-2";
|
||||||
|
layer = "top";
|
||||||
|
exclusive = true;
|
||||||
|
passthrough = false;
|
||||||
|
position = "top";
|
||||||
|
fixed-center = true;
|
||||||
|
ipc = true;
|
||||||
|
margin-top = 0;
|
||||||
|
margin-left = 0;
|
||||||
|
margin-right = 0;
|
||||||
|
margin-bottom = 0;
|
||||||
|
modules-left = [
|
||||||
|
"custom/os"
|
||||||
|
"hyprland/workspaces"
|
||||||
|
"clock"
|
||||||
|
"custom/cava"
|
||||||
|
"mpris"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"hyprland/window"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"wlr/taskbar"
|
||||||
|
"custom/wireguard"
|
||||||
|
"idle_inhibitor"
|
||||||
|
"network"
|
||||||
|
"cpu"
|
||||||
|
"memory"
|
||||||
|
"pulseaudio"
|
||||||
|
"custom/swaync"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
# Monitor 2
|
||||||
|
{
|
||||||
|
output = "DP-3";
|
||||||
|
layer = "top";
|
||||||
|
exclusive = true;
|
||||||
|
height = 54;
|
||||||
|
passthrough = false;
|
||||||
|
position = "top";
|
||||||
|
fixed-center = true;
|
||||||
|
ipc = true;
|
||||||
|
margin-top = 0;
|
||||||
|
margin-left = 0;
|
||||||
|
margin-right = 0;
|
||||||
|
margin-bottom = 0;
|
||||||
|
modules-left = [
|
||||||
|
"clock"
|
||||||
|
"mpris"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"hyprland/window"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"wlr/taskbar"
|
||||||
|
"temperature"
|
||||||
|
"cpu"
|
||||||
|
"memory"
|
||||||
|
"pulseaudio"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
# Lap
|
||||||
|
{
|
||||||
|
output = "eDP-1";
|
||||||
|
layer = "top";
|
||||||
|
exclusive = true;
|
||||||
|
passthrough = false;
|
||||||
|
position = "top";
|
||||||
|
fixed-center = true;
|
||||||
|
ipc = true;
|
||||||
|
margin-top = 0;
|
||||||
|
margin-left = 0;
|
||||||
|
margin-right = 0;
|
||||||
|
margin-bottom = 0;
|
||||||
|
modules-left = [
|
||||||
|
"custom/os"
|
||||||
|
"hyprland/workspaces"
|
||||||
|
"clock"
|
||||||
|
"mpris"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"hyprland/window"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"wlr/taskbar"
|
||||||
|
"temperature"
|
||||||
|
"custom/wireguard"
|
||||||
|
"idle_inhibitor"
|
||||||
|
"network"
|
||||||
|
"pulseaudio"
|
||||||
|
"battery"
|
||||||
|
"custom/swaync"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
# Other
|
||||||
|
{
|
||||||
|
output = [
|
||||||
|
"!eDP-1"
|
||||||
|
"!DP-1"
|
||||||
|
"!DP-3"
|
||||||
|
];
|
||||||
|
layer = "top";
|
||||||
|
exclusive = true;
|
||||||
|
passthrough = false;
|
||||||
|
position = "top";
|
||||||
|
fixed-center = true;
|
||||||
|
ipc = true;
|
||||||
|
margin-top = 0;
|
||||||
|
margin-left = 0;
|
||||||
|
margin-right = 0;
|
||||||
|
margin-bottom = 0;
|
||||||
|
modules-left = [
|
||||||
|
"custom/os"
|
||||||
|
"hyprland/workspaces"
|
||||||
|
"clock"
|
||||||
|
"mpris"
|
||||||
|
"custom/cava"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"hyprland/window"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"wlr/taskbar"
|
||||||
|
"temperature"
|
||||||
|
"custom/wireguard"
|
||||||
|
"idle_inhibitor"
|
||||||
|
"network"
|
||||||
|
"cpu"
|
||||||
|
"memory"
|
||||||
|
"pulseaudio"
|
||||||
|
"battery"
|
||||||
|
"custom/swaync"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -1,234 +0,0 @@
|
||||||
{
|
|
||||||
"hyprland/workspaces": {
|
|
||||||
"active-only": false,
|
|
||||||
"all-outputs": true,
|
|
||||||
"format": "{icon}",
|
|
||||||
"show-special": false,
|
|
||||||
"on-click": "activate",
|
|
||||||
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
|
||||||
"on-scroll-down": "hyprctl dispatch workspace e-1",
|
|
||||||
"persistent-workspaces": {
|
|
||||||
"1": [],
|
|
||||||
"2": [],
|
|
||||||
"3": [],
|
|
||||||
"4": []
|
|
||||||
},
|
|
||||||
"format-icons": {
|
|
||||||
"active": "",
|
|
||||||
"default": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"clock": {
|
|
||||||
"format": "<b> {:%H:%M %d/%m}</b>",
|
|
||||||
"tooltip-format": "{:%A %d %B %Y}"
|
|
||||||
},
|
|
||||||
|
|
||||||
"actions": {
|
|
||||||
"on-click-right": "mode",
|
|
||||||
"on-click-forward": "tz_up",
|
|
||||||
"on-click-backward": "tz_down",
|
|
||||||
"on-scroll-up": "shift_up",
|
|
||||||
"on-scroll-down": "shift_down"
|
|
||||||
},
|
|
||||||
|
|
||||||
"custom/os": {
|
|
||||||
"format": "",
|
|
||||||
"on-click": "wlogout --protocol layer-shell"
|
|
||||||
},
|
|
||||||
|
|
||||||
"cpu": {
|
|
||||||
"format": " {usage}%",
|
|
||||||
"max-length": 20,
|
|
||||||
"interval": 5,
|
|
||||||
"on-click-right": "ghostty -e btop"
|
|
||||||
},
|
|
||||||
|
|
||||||
"hyprland/window": {
|
|
||||||
"format": "{}",
|
|
||||||
"max-length": 40,
|
|
||||||
"separate-outputs": true,
|
|
||||||
"offscreen-css": true,
|
|
||||||
"offscreen-css-text": "(inactive)",
|
|
||||||
"rewrite": {
|
|
||||||
"nvim . (.*)": " $1",
|
|
||||||
"(.*) - Visual Studio Code": " $1",
|
|
||||||
"\\(\\d+\\) Discord (.*)": " $1",
|
|
||||||
|
|
||||||
// Firefox
|
|
||||||
"(.*) - YouTube — Mozilla Firefox": " $1",
|
|
||||||
"(.*)\\.pdf — Mozilla Firefox": " $1",
|
|
||||||
"(.*) — Mozilla Firefox": " $1",
|
|
||||||
"(.*) - YouTube Music — Mozilla Firefox": " $1",
|
|
||||||
|
|
||||||
// Firefox Nightly
|
|
||||||
"(.*) - YouTube — Firefox Nightly": " $1",
|
|
||||||
"(.*)\\.pdf — Firefox Nightly": " $1",
|
|
||||||
"(.*) — Firefox Nightly": " $1",
|
|
||||||
"(.*) - YouTube Music — Firefox Nightly": " $1",
|
|
||||||
|
|
||||||
// Zen
|
|
||||||
"(.*) - YouTube — Zen Browser": " $1",
|
|
||||||
"(.*) - YouTube Music — Zen Browser": " $1",
|
|
||||||
"(.*) — Zen Browser": " $1",
|
|
||||||
|
|
||||||
"(.*) - VLC media player": " $1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"memory": {
|
|
||||||
"interval": 30,
|
|
||||||
"format": " {used:0.1f}GB/{total:0.1f}G",
|
|
||||||
"format-alt-click": "click",
|
|
||||||
"tooltip": true,
|
|
||||||
"tooltip-format": "{used:0.1f}GB/{total:0.1f}G",
|
|
||||||
"on-click-right": "ghostty -e btop"
|
|
||||||
},
|
|
||||||
|
|
||||||
"mpris": {
|
|
||||||
"interval": 10,
|
|
||||||
"format": " {status_icon} <i>{title} | {artist} </i>",
|
|
||||||
"format-paused": " {status_icon} <i>{title} | {artist} </i>",
|
|
||||||
"on-click": "playerctl play-pause",
|
|
||||||
"on-click-right": "playerctl next",
|
|
||||||
"scroll-step": 5.0,
|
|
||||||
"smooth-scrolling-threshold": 1,
|
|
||||||
"status-icons": {
|
|
||||||
"paused": "",
|
|
||||||
"playing": "",
|
|
||||||
"stopped": ""
|
|
||||||
},
|
|
||||||
"max-length": 30
|
|
||||||
},
|
|
||||||
|
|
||||||
"pulseaudio": {
|
|
||||||
"format": "{icon} {volume}%",
|
|
||||||
"format-bluetooth": " {volume}%",
|
|
||||||
"format-muted": " Muted",
|
|
||||||
"format-icons": {
|
|
||||||
"default": ["", "", " ", " "],
|
|
||||||
"ignored-sinks": ["Easy Effects Sink"]
|
|
||||||
},
|
|
||||||
"scroll-step": 5.0,
|
|
||||||
"on-click": "pavucontrol -t 3",
|
|
||||||
"tooltip-format": "{icon} {desc} | {volume}%",
|
|
||||||
"smooth-scrolling-threshold": 1
|
|
||||||
},
|
|
||||||
|
|
||||||
"temperature": {
|
|
||||||
"interval": 10,
|
|
||||||
"tooltip": true,
|
|
||||||
"hwmon-path": [
|
|
||||||
"/sys/class/hwmon/hwmon1/temp1_input",
|
|
||||||
"/sys/class/thermal/thermal_zone0/temp"
|
|
||||||
],
|
|
||||||
"critical-threshold": 82,
|
|
||||||
"format-critical": " {temperatureC}°C",
|
|
||||||
"format": "{icon} {temperatureC}°C",
|
|
||||||
"format-icons": ["", "", "", ""],
|
|
||||||
"on-click-right": "kitty -c ~/.config/kitty/kitty.conf --title btop sh -c 'btop'"
|
|
||||||
},
|
|
||||||
|
|
||||||
"custom/swaync": {
|
|
||||||
"tooltip": true,
|
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"notification": "",
|
|
||||||
"none": "",
|
|
||||||
"dnd-notification": "<span foreground='red'><sup></sup></span>",
|
|
||||||
"dnd-none": "",
|
|
||||||
"inhibited-notification": "<span foreground='red'><sup></sup></span>",
|
|
||||||
"inhibited-none": "",
|
|
||||||
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span>",
|
|
||||||
"dnd-inhibited-none": ""
|
|
||||||
},
|
|
||||||
"return-type": "json",
|
|
||||||
"exec-if": "which swaync-client",
|
|
||||||
"exec": "swaync-client -swb",
|
|
||||||
"on-click": "sleep 0.1 && swaync-client -t -sw",
|
|
||||||
"on-click-right": "swaync-client -d -sw",
|
|
||||||
"escape": true
|
|
||||||
},
|
|
||||||
|
|
||||||
"wlr/taskbar": {
|
|
||||||
"format": " {icon} ",
|
|
||||||
"icon-size": 20,
|
|
||||||
"all-outputs": false,
|
|
||||||
"tooltip-format": "{title}",
|
|
||||||
"on-click": "activate",
|
|
||||||
"on-click-middle": "close",
|
|
||||||
"ignore-list": [
|
|
||||||
"rofi",
|
|
||||||
"firefox",
|
|
||||||
"firefox-nightly",
|
|
||||||
"zen",
|
|
||||||
"kitty",
|
|
||||||
"jetbrains-studio",
|
|
||||||
"Brave-browser",
|
|
||||||
"Spotify",
|
|
||||||
"nemo",
|
|
||||||
"vlc",
|
|
||||||
"com.mitchellh.ghostty",
|
|
||||||
"code",
|
|
||||||
".virt-manager-wrapped",
|
|
||||||
"virt-manager"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
"custom/cava": {
|
|
||||||
"exec": "~/.config/scripts/waybarCava.sh",
|
|
||||||
"format": "{}",
|
|
||||||
"on-click": "ghostty -e cava"
|
|
||||||
},
|
|
||||||
|
|
||||||
"battery": {
|
|
||||||
"full-at": 96,
|
|
||||||
"states": {
|
|
||||||
"good": 95,
|
|
||||||
"warning": 30,
|
|
||||||
"critical": 15
|
|
||||||
},
|
|
||||||
"format": "{icon} {capacity}%",
|
|
||||||
"format-icons": ["", "", "", "", "", "", "", "", "", "", ""],
|
|
||||||
"format-charging": " {capacity}%",
|
|
||||||
"format-plugged": " {capacity}%",
|
|
||||||
"format-alt": "{icon} {time}"
|
|
||||||
},
|
|
||||||
|
|
||||||
"network": {
|
|
||||||
"format": "{ifname}",
|
|
||||||
"format-wifi": "",
|
|
||||||
"format-ethernet": "",
|
|
||||||
"format-disconnected": "",
|
|
||||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
|
||||||
"tooltip-format-wifi": " {essid}: {signalStrength}%",
|
|
||||||
"tooltip-format-ethernet": "{ifname} via {gwaddr} ",
|
|
||||||
"tooltip-format-disconnected": "Disconnected",
|
|
||||||
"max-length": 50,
|
|
||||||
"interval": 5,
|
|
||||||
"on-click": "~/.config/scripts/rofiWifi.sh"
|
|
||||||
},
|
|
||||||
|
|
||||||
"idle_inhibitor": {
|
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"activated": "",
|
|
||||||
"deactivated": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"custom/wireguard": {
|
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"connected": "",
|
|
||||||
"disconnected": ""
|
|
||||||
},
|
|
||||||
"exec": "~/.config/scripts/wgStatus.sh",
|
|
||||||
"exec-if": "which wg-quick",
|
|
||||||
"on-click": "~/.config/scripts/wgStatus.sh toggle",
|
|
||||||
"tooltip": true,
|
|
||||||
"interval": 3,
|
|
||||||
"return-type": "json",
|
|
||||||
"escape": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
246
home/config/waybar/modules.nix
Normal file
246
home/config/waybar/modules.nix
Normal file
|
|
@ -0,0 +1,246 @@
|
||||||
|
{ terminal }:
|
||||||
|
let
|
||||||
|
terminalRun = "${terminal} -e";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
active-only = false;
|
||||||
|
all-outputs = true;
|
||||||
|
format = "{icon}";
|
||||||
|
show-special = false;
|
||||||
|
on-click = "activate";
|
||||||
|
on-scroll-up = "hyprctl dispatch workspace e+1";
|
||||||
|
on-scroll-down = "hyprctl dispatch workspace e-1";
|
||||||
|
persistent-workspaces = {
|
||||||
|
"1" = [ ];
|
||||||
|
"2" = [ ];
|
||||||
|
"3" = [ ];
|
||||||
|
"4" = [ ];
|
||||||
|
};
|
||||||
|
format-icons = {
|
||||||
|
active = "";
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
format = "<b> {:%H:%M %d/%m}</b>";
|
||||||
|
tooltip-format = "{:%A %d %B %Y}";
|
||||||
|
};
|
||||||
|
actions = {
|
||||||
|
on-click-right = "mode";
|
||||||
|
on-click-forward = "tz_up";
|
||||||
|
on-click-backward = "tz_down";
|
||||||
|
on-scroll-up = "shift_up";
|
||||||
|
on-scroll-down = "shift_down";
|
||||||
|
};
|
||||||
|
"custom/os" = {
|
||||||
|
format = "";
|
||||||
|
on-click = "wlogout --protocol layer-shell";
|
||||||
|
};
|
||||||
|
cpu = {
|
||||||
|
format = " {usage}%";
|
||||||
|
max-length = 20;
|
||||||
|
interval = 5;
|
||||||
|
on-click-right = "${terminalRun} btop";
|
||||||
|
};
|
||||||
|
"hyprland/window" = {
|
||||||
|
format = "{}";
|
||||||
|
max-length = 40;
|
||||||
|
separate-outputs = true;
|
||||||
|
offscreen-css = true;
|
||||||
|
offscreen-css-text = "(inactive)";
|
||||||
|
rewrite = {
|
||||||
|
"nvim . (.*)" = " $1";
|
||||||
|
"(.*) - Visual Studio Code" = " $1";
|
||||||
|
"\\(\\d+\\) Discord (.*)" = " $1";
|
||||||
|
|
||||||
|
# Firefox
|
||||||
|
"(.*) - YouTube — Mozilla Firefox" = " $1";
|
||||||
|
"(.*)\\.pdf — Mozilla Firefox" = " $1";
|
||||||
|
"(.*) — Mozilla Firefox" = " $1";
|
||||||
|
"(.*) - YouTube Music — Mozilla Firefox" = " $1";
|
||||||
|
|
||||||
|
# Firefox Nightly
|
||||||
|
"(.*) - YouTube — Firefox Nightly" = " $1";
|
||||||
|
"(.*)\\.pdf — Firefox Nightly" = " $1";
|
||||||
|
"(.*) — Firefox Nightly" = " $1";
|
||||||
|
"(.*) - YouTube Music — Firefox Nightly" = " $1";
|
||||||
|
|
||||||
|
# Zen
|
||||||
|
"(.*) - YouTube — Zen Browser" = " $1";
|
||||||
|
"(.*) - YouTube Music — Zen Browser" = " $1";
|
||||||
|
"(.*) — Zen Browser" = " $1";
|
||||||
|
|
||||||
|
"(.*) - VLC media player" = " $1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
memory = {
|
||||||
|
interval = 30;
|
||||||
|
format = " {used:0.1f}GB/{total:0.1f}G";
|
||||||
|
format-alt-click = "click";
|
||||||
|
tooltip = true;
|
||||||
|
tooltip-format = "{used:0.1f}GB/{total:0.1f}G";
|
||||||
|
on-click-right = "${terminalRun} btop";
|
||||||
|
};
|
||||||
|
mpris = {
|
||||||
|
interval = 10;
|
||||||
|
format = " {status_icon} <i>{title} | {artist} </i>";
|
||||||
|
format-paused = " {status_icon} <i>{title} | {artist} </i>";
|
||||||
|
on-click = "playerctl play-pause";
|
||||||
|
on-click-right = "playerctl next";
|
||||||
|
scroll-step = 5.0;
|
||||||
|
smooth-scrolling-threshold = 1;
|
||||||
|
status-icons = {
|
||||||
|
paused = "";
|
||||||
|
playing = "";
|
||||||
|
stopped = "";
|
||||||
|
};
|
||||||
|
max-length = 30;
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
format-bluetooth = " {volume}%";
|
||||||
|
format-muted = " Muted";
|
||||||
|
format-icons = {
|
||||||
|
default = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
" "
|
||||||
|
" "
|
||||||
|
];
|
||||||
|
ignored-sinks = [
|
||||||
|
"Easy Effects Sink"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
scroll-step = 5.0;
|
||||||
|
on-click = "pavucontrol -t 3";
|
||||||
|
tooltip-format = "{icon} {desc} | {volume}%";
|
||||||
|
smooth-scrolling-threshold = 1;
|
||||||
|
};
|
||||||
|
temperature = {
|
||||||
|
interval = 10;
|
||||||
|
tooltip = true;
|
||||||
|
hwmon-path = [
|
||||||
|
"/sys/class/hwmon/hwmon1/temp1_input"
|
||||||
|
"/sys/class/thermal/thermal_zone0/temp"
|
||||||
|
];
|
||||||
|
critical-threshold = 82;
|
||||||
|
format-critical = " {temperatureC}°C";
|
||||||
|
format = "{icon} {temperatureC}°C";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
on-click-right = "kitty -c ~/.config/kitty/kitty.conf --title btop sh -c 'btop'";
|
||||||
|
};
|
||||||
|
"custom/swaync" = {
|
||||||
|
tooltip = true;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
notification = "";
|
||||||
|
none = "";
|
||||||
|
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
||||||
|
dnd-none = "";
|
||||||
|
inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||||
|
inhibited-none = "";
|
||||||
|
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||||
|
dnd-inhibited-none = "";
|
||||||
|
};
|
||||||
|
return-type = "json";
|
||||||
|
exec-if = "which swaync-client";
|
||||||
|
exec = "swaync-client -swb";
|
||||||
|
on-click = "sleep 0.1 && swaync-client -t -sw";
|
||||||
|
on-click-right = "swaync-client -d -sw";
|
||||||
|
escape = true;
|
||||||
|
};
|
||||||
|
"wlr/taskbar" = {
|
||||||
|
format = " {icon} ";
|
||||||
|
icon-size = 20;
|
||||||
|
all-outputs = false;
|
||||||
|
tooltip-format = "{title}";
|
||||||
|
on-click = "activate";
|
||||||
|
on-click-middle = "close";
|
||||||
|
ignore-list = [
|
||||||
|
"rofi"
|
||||||
|
"firefox"
|
||||||
|
"firefox-nightly"
|
||||||
|
"zen"
|
||||||
|
"kitty"
|
||||||
|
"jetbrains-studio"
|
||||||
|
"Brave-browser"
|
||||||
|
"Spotify"
|
||||||
|
"nemo"
|
||||||
|
"vlc"
|
||||||
|
"com.mitchellh.ghostty"
|
||||||
|
"code"
|
||||||
|
".virt-manager-wrapped"
|
||||||
|
"virt-manager"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"custom/cava" = {
|
||||||
|
exec = "~/.config/scripts/waybarCava.sh";
|
||||||
|
format = "{}";
|
||||||
|
on-click = "${terminalRun} cava";
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
full-at = 96;
|
||||||
|
states = {
|
||||||
|
good = 95;
|
||||||
|
warning = 30;
|
||||||
|
critical = 15;
|
||||||
|
};
|
||||||
|
format = "{icon} {capacity}%";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
format-charging = " {capacity}%";
|
||||||
|
format-plugged = " {capacity}%";
|
||||||
|
format-alt = "{icon} {time}";
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
format = "{ifname}";
|
||||||
|
format-wifi = "";
|
||||||
|
format-ethernet = "";
|
||||||
|
format-disconnected = "";
|
||||||
|
tooltip-format = "{ifname} via {gwaddr} ";
|
||||||
|
tooltip-format-wifi = " {essid}: {signalStrength}%";
|
||||||
|
tooltip-format-ethernet = "{ifname} via {gwaddr} ";
|
||||||
|
tooltip-format-disconnected = "Disconnected";
|
||||||
|
max-length = 50;
|
||||||
|
interval = 5;
|
||||||
|
on-click = "~/.config/scripts/rofiWifi.sh";
|
||||||
|
};
|
||||||
|
idle_inhibitor = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
activated = "";
|
||||||
|
deactivated = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"custom/wireguard" = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
connected = "";
|
||||||
|
disconnected = "";
|
||||||
|
};
|
||||||
|
exec = "~/.config/scripts/wgStatus.sh";
|
||||||
|
exec-if = "which wg-quick";
|
||||||
|
on-click = "~/.config/scripts/wgStatus.sh toggle";
|
||||||
|
tooltip = true;
|
||||||
|
interval = 3;
|
||||||
|
return-type = "json";
|
||||||
|
escape = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -7,9 +7,6 @@ in
|
||||||
".config/wallpapers".source = "${configDir}/wallpapers";
|
".config/wallpapers".source = "${configDir}/wallpapers";
|
||||||
".config/neofetch".source = "${configDir}/neofetch";
|
".config/neofetch".source = "${configDir}/neofetch";
|
||||||
".config/wlogout".source = "${configDir}/wlogout";
|
".config/wlogout".source = "${configDir}/wlogout";
|
||||||
".config/waybar" = {
|
|
||||||
source = "${configDir}/waybar";
|
|
||||||
};
|
|
||||||
".config/btop".source = "${configDir}/btop";
|
".config/btop".source = "${configDir}/btop";
|
||||||
".config/rofi".source = "${configDir}/rofi";
|
".config/rofi".source = "${configDir}/rofi";
|
||||||
".config/scripts".source = "${configDir}/scripts";
|
".config/scripts".source = "${configDir}/scripts";
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,7 @@ let
|
||||||
firefox = "firefox-nightly";
|
firefox = "firefox-nightly";
|
||||||
prefix = if nvidia-offload-enabled then "nvidia-offload" else "";
|
prefix = if nvidia-offload-enabled then "nvidia-offload" else "";
|
||||||
browser = "${prefix} ${firefox}";
|
browser = "${prefix} ${firefox}";
|
||||||
noOffloadBrowser = "${firefox} -P noOffload";
|
terminal = "ghostty";
|
||||||
terminal = "${prefix} ghostty";
|
|
||||||
# filemanager = "nemo";
|
|
||||||
filemanager = "${terminal} -e yazi";
|
filemanager = "${terminal} -e yazi";
|
||||||
scripts = "~/.config/scripts";
|
scripts = "~/.config/scripts";
|
||||||
|
|
||||||
|
|
@ -17,7 +15,6 @@ let
|
||||||
in
|
in
|
||||||
[
|
[
|
||||||
''${mainMod}, F, exec, ${browser}''
|
''${mainMod}, F, exec, ${browser}''
|
||||||
''CTRL ${mainMod}, F, exec, ${noOffloadBrowser} -no-remote''
|
|
||||||
''${mainMod}, RETURN, exec, ${terminal}''
|
''${mainMod}, RETURN, exec, ${terminal}''
|
||||||
''CTRL ALT, T, exec, ${terminal}''
|
''CTRL ALT, T, exec, ${terminal}''
|
||||||
''${mainMod}, Q, killactive, ''
|
''${mainMod}, Q, killactive, ''
|
||||||
|
|
|
||||||
|
|
@ -5,28 +5,15 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
swayncScript = pkgs.pkgs.writeShellScriptBin "swaync-start" ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
XDG_CONFIG_HOME="$HOME/.dummy" # Prevent swaync use default gtk theme
|
|
||||||
swaync -c "$HOME/.config/swaync/config.json" -s "$HOME/.config/swaync/style.css"
|
|
||||||
'';
|
|
||||||
|
|
||||||
startupScript = pkgs.pkgs.writeShellScriptBin "start" ''
|
startupScript = pkgs.pkgs.writeShellScriptBin "start" ''
|
||||||
# Fix nemo open in terminal
|
# Fix nemo open in terminal
|
||||||
dconf write /org/cinnamon/desktop/applications/terminal/exec "''\'${terminal}''\'" &
|
dconf write /org/cinnamon/desktop/applications/terminal/exec "''\'${terminal}''\'" &
|
||||||
dconf write /org/cinnamon/desktop/applications/terminal/exec-arg "''\'''\'" &
|
dconf write /org/cinnamon/desktop/applications/terminal/exec-arg "''\'''\'" &
|
||||||
|
|
||||||
dconf write /org/gnome/desktop/interface/cursor-size ${builtins.toString xcursor-size} &
|
dconf write /org/gnome/desktop/interface/cursor-size ${builtins.toString xcursor-size} &
|
||||||
|
|
||||||
${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 &
|
|
||||||
${swayncScript}/bin/swaync-start &
|
|
||||||
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
||||||
dbus-update-activation-environment --systemd --all &
|
dbus-update-activation-environment --systemd --all &
|
||||||
systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
||||||
hyprpaper &
|
|
||||||
waybar -c ~/.config/waybar/config.jsonc -s ~/.config/waybar/style.css &
|
|
||||||
systemctl --user enable --now hypridle.service &
|
|
||||||
hyprsunset -t 3000k
|
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
''${startupScript}/bin/start''
|
''${startupScript}/bin/start''
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
[
|
[
|
||||||
''desc:ASUSTek COMPUTER INC ASUS VG32VQ1B 0x00002271,2560x1440@165, 0x0, 1''
|
''desc:ASUSTek COMPUTER INC ASUS VG32VQ1B 0x00002271,2560x1440@165, 0x0, 1''
|
||||||
''desc:Acer Technologies XV272U V3 7422007E54222, 2560x1440@144, -1440x-540, 1, transform, 1''
|
''desc:Acer Technologies XV272U V3 1322131231233, 2560x1440@180, -1440x-540, 1, transform, 1''
|
||||||
''desc:LG Display 0x0665, preferred, 0x0, 1.25''
|
''desc:LG Display 0x0665, preferred, 0x0, 1.25''
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,6 @@ in
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
mpvpaper # Video Wallpaper
|
mpvpaper # Video Wallpaper
|
||||||
yt-dlp
|
yt-dlp
|
||||||
hyprpaper
|
|
||||||
hyprcursor
|
hyprcursor
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -46,7 +45,7 @@ in
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
systemd.enable = false;
|
systemd.enable = true;
|
||||||
package = null;
|
package = null;
|
||||||
portalPackage = null;
|
portalPackage = null;
|
||||||
|
|
||||||
|
|
@ -63,7 +62,7 @@ in
|
||||||
settings =
|
settings =
|
||||||
{
|
{
|
||||||
debug = {
|
debug = {
|
||||||
disable_logs = false;
|
disable_logs = true;
|
||||||
};
|
};
|
||||||
bind = import ./hypr/bind.nix {
|
bind = import ./hypr/bind.nix {
|
||||||
inherit mainMod;
|
inherit mainMod;
|
||||||
|
|
@ -90,6 +89,7 @@ in
|
||||||
// input;
|
// input;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# === hyprpaper === #
|
||||||
services.hyprpaper = {
|
services.hyprpaper = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
@ -100,6 +100,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# === hyprlock === #
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
importantPrefixes = [
|
importantPrefixes = [
|
||||||
|
|
@ -126,6 +127,7 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# === hypridle === #
|
||||||
services.hypridle = {
|
services.hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
@ -170,6 +172,218 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# === hyprsunset === #
|
||||||
|
systemd.user.services.hyprsunset = {
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
|
Unit = {
|
||||||
|
ConditionEnvironment = "WAYLAND_DISPLAY";
|
||||||
|
Description = "Blue light filter";
|
||||||
|
PartOf = [ "graphical-session.target" ];
|
||||||
|
After = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.hyprsunset}/bin/hyprsunset -t 3000k";
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# === waybar === #
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
style = ../../home/config/waybar/style.css;
|
||||||
|
settings = import ../../home/config/waybar/config.nix { inherit terminal; };
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# === swaync === #
|
||||||
|
services.swaync = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
control-center-height = 900;
|
||||||
|
control-center-margin-bottom = 20;
|
||||||
|
control-center-margin-left = 20;
|
||||||
|
control-center-margin-right = 20;
|
||||||
|
control-center-margin-top = 20;
|
||||||
|
control-center-width = 500;
|
||||||
|
fit-to-screen = false;
|
||||||
|
hide-on-action = true;
|
||||||
|
hide-on-clear = true;
|
||||||
|
image-visibility = "when-available";
|
||||||
|
keyboard-shortcuts = true;
|
||||||
|
layer = "overlay";
|
||||||
|
notification-body-image-height = 100;
|
||||||
|
notification-body-image-width = 200;
|
||||||
|
notification-icon-size = 64;
|
||||||
|
notification-window-width = 490;
|
||||||
|
positionX = "right";
|
||||||
|
positionY = "top";
|
||||||
|
script-fail-notify = true;
|
||||||
|
timeout = 3;
|
||||||
|
timeout-critical = 0;
|
||||||
|
timeout-low = 2;
|
||||||
|
transition-time = 200;
|
||||||
|
widgets = [
|
||||||
|
"title"
|
||||||
|
"notifications"
|
||||||
|
"mpris"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
style = # css
|
||||||
|
''
|
||||||
|
@define-color bgc rgba(0, 0, 0, 0.1);
|
||||||
|
@define-color borderc #ebdbb2;
|
||||||
|
@define-color textc #282828;
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: JetBrainsMonoNerdFontMono;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 15px;
|
||||||
|
border-width: 3px;
|
||||||
|
border-color: #ebdbb2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row:focus,
|
||||||
|
.control-center .notification-row:hover {
|
||||||
|
opacity: 1;
|
||||||
|
background: @bgc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row {
|
||||||
|
outline: none;
|
||||||
|
margin: 20px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification {
|
||||||
|
background: @textc;
|
||||||
|
margin: 0px;
|
||||||
|
border-radius: 6px;
|
||||||
|
border-width: 3px;
|
||||||
|
border-color: #ebdbb2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-content {
|
||||||
|
background: @textc;
|
||||||
|
padding: 7px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
background: @textc;
|
||||||
|
color: @borderc;
|
||||||
|
text-shadow: none;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 20px;
|
||||||
|
margin-top: 9px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button:hover {
|
||||||
|
box-shadow: none;
|
||||||
|
background: @borderc;
|
||||||
|
color: @textc;
|
||||||
|
transition: all .15s ease-in-out;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-action {
|
||||||
|
color: @bgc;
|
||||||
|
background: @textc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.summary {
|
||||||
|
padding-top: 7px;
|
||||||
|
font-size: 13px;
|
||||||
|
color: @borderc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
font-size: 11px;
|
||||||
|
color: @borderc;
|
||||||
|
margin-right: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body {
|
||||||
|
font-size: 12px;
|
||||||
|
color: @borderc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center {
|
||||||
|
background-color: @bgc;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-list {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-list-placeholder {
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blank-window {
|
||||||
|
background: alpha(black, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-title {
|
||||||
|
color: @borderc;
|
||||||
|
padding: 10px 10px;
|
||||||
|
margin: 10px 10px 5px 10px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-title>button {
|
||||||
|
font-size: 1rem;
|
||||||
|
color: @borderc;
|
||||||
|
padding: 10px;
|
||||||
|
text-shadow: none;
|
||||||
|
background: @bgc;
|
||||||
|
box-shadow: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-title>button:hover {
|
||||||
|
background: @borderc;
|
||||||
|
color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-label {
|
||||||
|
margin: 10px 10px 10px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-label>label {
|
||||||
|
font-size: 1rem;
|
||||||
|
color: @textc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris {
|
||||||
|
color: @borderc;
|
||||||
|
padding: 5px 5px 5px 5px;
|
||||||
|
margin: 10px;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris>box>button {
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris-player {
|
||||||
|
padding: 5px 5px;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# === rofi === #
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.rofi-wayland;
|
package = pkgs.rofi-wayland;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,4 @@
|
||||||
{ config }:
|
[
|
||||||
prev: final: {
|
(import ./ferium.nix)
|
||||||
imports = [
|
(import ./vesktop.nix)
|
||||||
./ferium.nix
|
]
|
||||||
(import ./vesktop.nix { inherit config; })
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
{ config }:
|
|
||||||
final: prev:
|
final: prev:
|
||||||
let
|
let
|
||||||
discordIcon = prev.lib.readFile ../../pkgs/assets/discord.svg;
|
discordIcon = prev.lib.readFile ../../pkgs/assets/discord.svg;
|
||||||
|
|
@ -10,11 +9,6 @@ in
|
||||||
(prev.lib.head oldAttrs.desktopItems).override {
|
(prev.lib.head oldAttrs.desktopItems).override {
|
||||||
name = "discord";
|
name = "discord";
|
||||||
desktopName = "Discord";
|
desktopName = "Discord";
|
||||||
exec =
|
|
||||||
if config.hardware.nvidia.prime.offload.enableOffloadCmd == true then
|
|
||||||
"nvidia-offload vesktop %U"
|
|
||||||
else
|
|
||||||
"vesktop %U";
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, settings, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
addons = with pkgs; [
|
addons = with pkgs; [
|
||||||
|
|
@ -44,7 +44,7 @@ in
|
||||||
};
|
};
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
Restart = "on-failure";
|
Restart = "always";
|
||||||
RestartSec = 2;
|
RestartSec = 2;
|
||||||
ExecStart = "/run/current-system/sw/bin/fcitx5";
|
ExecStart = "/run/current-system/sw/bin/fcitx5";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -95,14 +95,13 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
# GPU
|
|
||||||
LIBVA_DRIVER_NAME = "nvidia";
|
LIBVA_DRIVER_NAME = "nvidia";
|
||||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||||
NVD_BACKEND = "direct";
|
NVD_BACKEND = "direct";
|
||||||
GBM_BACKEND = "nvidia-drm";
|
GBM_BACKEND = "nvidia-drm";
|
||||||
MOZ_DISABLE_RDD_SANDBOX = 1;
|
MOZ_DISABLE_RDD_SANDBOX = 1;
|
||||||
OGL_DEDICATED_HW_STATE_PER_CONTEXT = "ENABLE_ROBUST";
|
OGL_DEDICATED_HW_STATE_PER_CONTEXT = "ENABLE_ROBUST";
|
||||||
INTEL_GPU_MIN_FREQ_ON_AC = "500";
|
|
||||||
# If multiple monitors are connected to dGPU & iGPU,
|
# If multiple monitors are connected to dGPU & iGPU,
|
||||||
# make sure to put the iGPU first
|
# make sure to put the iGPU first
|
||||||
# AQ_DRM_DEVICES = "/dev/dri/card1:/dev/dri/card0";
|
# AQ_DRM_DEVICES = "/dev/dri/card1:/dev/dri/card0";
|
||||||
|
|
|
||||||
|
|
@ -8,4 +8,19 @@
|
||||||
# polkit-gnome execution is handled by Hyprland exec.nix
|
# polkit-gnome execution is handled by Hyprland exec.nix
|
||||||
# as hyprland do not cooperate with graphical-session.target
|
# as hyprland do not cooperate with graphical-session.target
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
systemd.user.services.polkit-gnome-authentication-agent-1 = {
|
||||||
|
enable = true;
|
||||||
|
description = "Gnome authentication agent";
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
after = [ "graphical-session-pre.target" ];
|
||||||
|
partOf = [ "graphical-session.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue