noctalia with fingerprint lock screen
This commit is contained in:
@@ -30,7 +30,9 @@
|
||||
"Bash(darkman get:*)",
|
||||
"Bash(dconf read:*)",
|
||||
"Bash(journalctl:*)",
|
||||
"Bash(hyprctl:*)"
|
||||
"Bash(hyprctl:*)",
|
||||
"WebFetch(domain:docs.noctalia.dev)",
|
||||
"WebFetch(domain:gerg-l.github.io)"
|
||||
]
|
||||
},
|
||||
"sandbox": {
|
||||
|
||||
Generated
+66
-92
@@ -68,31 +68,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"elephant": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"walker",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"walker",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768551400,
|
||||
"narHash": "sha256-mlHlHW8qLcHm42J1M34HLXLW+Rw8jsLkLdjSvIYlhjw=",
|
||||
"owner": "abenz1267",
|
||||
"repo": "elephant",
|
||||
"rev": "f230c43ae94231c2db754f84a4f31cf76721a28a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "abenz1267",
|
||||
"repo": "elephant",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ethui": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
@@ -872,11 +847,11 @@
|
||||
},
|
||||
"nixpkgs_9": {
|
||||
"locked": {
|
||||
"lastModified": 1768564909,
|
||||
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
||||
"lastModified": 1770197578,
|
||||
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
||||
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -906,6 +881,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771269759,
|
||||
"narHash": "sha256-OcSMUdOxKeCCNV+gOgZWP+BOGedi3QxxGNIbQQQsEFk=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "c33db6b999a884000e33ec2d018ef9de394bf42a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nvchad-starter": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -969,26 +964,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"quickshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770693276,
|
||||
"narHash": "sha256-ngXnN5YXu+f45+QGYNN/VEBMQmcBCYGRCqwaK8cxY1s=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "dacfa9de829ac7cb173825f593236bf2c21f637e",
|
||||
"revCount": 735,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"claude-code": "claude-code",
|
||||
@@ -1002,13 +977,13 @@
|
||||
"nix-colors": "nix-colors",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nixvim": "nixvim",
|
||||
"noctalia": "noctalia",
|
||||
"nvchad-starter": "nvchad-starter",
|
||||
"nvchad4nix": "nvchad4nix",
|
||||
"quickshell": "quickshell",
|
||||
"rose-pine-hyprcursor": "rose-pine-hyprcursor",
|
||||
"systems": "systems_9",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"systems": "systems_10",
|
||||
"utils": "utils_3",
|
||||
"walker": "walker",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
@@ -1050,6 +1025,25 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"spicetify-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_9",
|
||||
"systems": "systems_9"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771268051,
|
||||
"narHash": "sha256-nGqPcngnezoT+/xAvw3UDjwdKP2MC4fO315A/Otb9eE=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"rev": "b930de84c561f62a0c39a6a57c2ab553a97e8495",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
@@ -1066,21 +1060,6 @@
|
||||
}
|
||||
},
|
||||
"systems_10": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_11": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
@@ -1095,6 +1074,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_11": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
@@ -1202,16 +1196,16 @@
|
||||
},
|
||||
"systems_9": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -1253,7 +1247,7 @@
|
||||
},
|
||||
"utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_10"
|
||||
"systems": "systems_11"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
@@ -1269,26 +1263,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"walker": {
|
||||
"inputs": {
|
||||
"elephant": "elephant",
|
||||
"nixpkgs": "nixpkgs_9",
|
||||
"systems": "systems_11"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771062828,
|
||||
"narHash": "sha256-y1jBFFO0u+V21y3YldHZozrDwVJVrdC+o3c4M8/rasU=",
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"rev": "19b1104585305e0806b842af341630f72038a4b9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
url = "github:KZDKM/Hyprspace";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
walker.url = "github:abenz1267/walker";
|
||||
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
||||
claude-code.url = "github:sadjow/claude-code-nix";
|
||||
};
|
||||
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||
{ ... }:
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
home.file.".default-npm-packages".text = ''
|
||||
@anthropic-ai/claude-code
|
||||
'';
|
||||
|
||||
home.packages = with pkgs; [
|
||||
inputs.claude-code.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
|
||||
# sandbox
|
||||
bubblewrap
|
||||
socat
|
||||
libseccomp
|
||||
];
|
||||
|
||||
# Commands
|
||||
home.file.".claude/commands/merge.md".source = ./commands/merge.md;
|
||||
home.file.".claude/commands/update.md".source = ./commands/update.md;
|
||||
@@ -19,9 +28,11 @@
|
||||
|
||||
# Skills: knowledge
|
||||
home.file.".claude/skills/git-master/SKILL.md".source = ./skills/git-master/SKILL.md;
|
||||
home.file.".claude/skills/planning-with-files/SKILL.md".source = ./skills/planning-with-files/SKILL.md;
|
||||
home.file.".claude/skills/planning-with-files/SKILL.md".source =
|
||||
./skills/planning-with-files/SKILL.md;
|
||||
home.file.".claude/skills/react-patterns/SKILL.md".source = ./skills/react-patterns/SKILL.md;
|
||||
home.file.".claude/skills/vercel-react-best-practices/SKILL.md".source = ./skills/vercel-react-best-practices/SKILL.md;
|
||||
home.file.".claude/skills/vercel-react-best-practices/SKILL.md".source =
|
||||
./skills/vercel-react-best-practices/SKILL.md;
|
||||
|
||||
# Skills: workflows
|
||||
home.file.".claude/skills/smart-debug/SKILL.md".source = ./skills/smart-debug/SKILL.md;
|
||||
|
||||
@@ -22,11 +22,11 @@
|
||||
export XCURSOR_THEME="Nordzy-cursors"
|
||||
|
||||
# Update Hyprland cursor theme
|
||||
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-cursors 42
|
||||
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-cursors 24
|
||||
'';
|
||||
kitty-theme = ''
|
||||
# Switch all Kitty instances to dark theme
|
||||
${pkgs.kitty}/bin/kitten themes --reload-in=all Catppuccin-Mocha
|
||||
# Reload kitty config to pick up noctalia theme changes
|
||||
kill -SIGUSR1 $(pidof kitty) 2>/dev/null || true
|
||||
'';
|
||||
claude-theme = ''
|
||||
# Switch Claude Code to dark theme
|
||||
@@ -35,6 +35,9 @@
|
||||
${pkgs.jq}/bin/jq '.theme = "dark"' "$CLAUDE_CONFIG" > "$CLAUDE_CONFIG.tmp" && mv "$CLAUDE_CONFIG.tmp" "$CLAUDE_CONFIG"
|
||||
fi
|
||||
'';
|
||||
noctalia-theme = ''
|
||||
noctalia-shell ipc call darkMode setDark
|
||||
'';
|
||||
};
|
||||
lightModeScripts = {
|
||||
gtk-theme = ''
|
||||
@@ -52,11 +55,11 @@
|
||||
export XCURSOR_THEME="Nordzy-white"
|
||||
|
||||
# Update Hyprland cursor theme
|
||||
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-white 42
|
||||
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-white 24
|
||||
'';
|
||||
kitty-theme = ''
|
||||
# Switch all Kitty instances to light theme
|
||||
${pkgs.kitty}/bin/kitten themes --reload-in=all Catppuccin-Latte
|
||||
# Reload kitty config to pick up noctalia theme changes
|
||||
kill -SIGUSR1 $(pidof kitty) 2>/dev/null || true
|
||||
'';
|
||||
claude-theme = ''
|
||||
# Switch Claude Code to light theme
|
||||
@@ -65,6 +68,9 @@
|
||||
${pkgs.jq}/bin/jq '.theme = "light"' "$CLAUDE_CONFIG" > "$CLAUDE_CONFIG.tmp" && mv "$CLAUDE_CONFIG.tmp" "$CLAUDE_CONFIG"
|
||||
fi
|
||||
'';
|
||||
noctalia-theme = ''
|
||||
noctalia-shell ipc call darkMode setLight
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./darkman.nix
|
||||
./spicetify.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# various
|
||||
google-chrome
|
||||
spotify
|
||||
spicetify-cli
|
||||
thunar
|
||||
obsidian
|
||||
mpv
|
||||
@@ -19,6 +18,8 @@
|
||||
imv
|
||||
pavucontrol
|
||||
zathura
|
||||
libsForQt5.qt5ct
|
||||
kdePackages.qt6ct
|
||||
nwg-look
|
||||
xournalpp
|
||||
jq
|
||||
@@ -66,4 +67,27 @@
|
||||
package = pkgs.numix-cursor-theme;
|
||||
name = "Numix-Cursor-Light";
|
||||
};
|
||||
|
||||
# zathura: include noctalia-generated theme
|
||||
xdg.configFile."zathura/zathurarc".text = ''
|
||||
include noctaliarc
|
||||
'';
|
||||
|
||||
# gtk: include noctalia-generated css (mkForce to override gtk module)
|
||||
xdg.configFile."gtk-3.0/gtk.css".text = lib.mkForce ''
|
||||
@import url("noctalia.css");
|
||||
'';
|
||||
xdg.configFile."gtk-4.0/gtk.css".text = lib.mkForce ''
|
||||
@import url("noctalia.css");
|
||||
'';
|
||||
|
||||
# qt: use noctalia color scheme
|
||||
xdg.configFile."qt5ct/qt5ct.conf".text = ''
|
||||
[Appearance]
|
||||
color_scheme_path=${config.home.homeDirectory}/.config/qt5ct/colors/noctalia.conf
|
||||
'';
|
||||
xdg.configFile."qt6ct/qt6ct.conf".text = ''
|
||||
[Appearance]
|
||||
color_scheme_path=${config.home.homeDirectory}/.config/qt6ct/colors/noctalia.conf
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{ inputs, pkgs, ... }:
|
||||
let
|
||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||
in
|
||||
{
|
||||
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
|
||||
|
||||
programs.spicetify = {
|
||||
enable = true;
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
adblock
|
||||
hidePodcasts
|
||||
shuffle
|
||||
];
|
||||
theme = spicePkgs.themes.bloom;
|
||||
};
|
||||
}
|
||||
@@ -39,29 +39,13 @@
|
||||
lsof
|
||||
ktlint
|
||||
croc
|
||||
inputs.claude-code.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
opencode
|
||||
|
||||
# typst
|
||||
typst
|
||||
typstyle
|
||||
|
||||
renderdoc
|
||||
|
||||
mkcert
|
||||
nss.tools
|
||||
|
||||
# claude sandbox
|
||||
bubblewrap
|
||||
socat
|
||||
libseccomp
|
||||
];
|
||||
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
setw -g mouse on
|
||||
set -s extended-keys on
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ in
|
||||
|
||||
home.sessionVariables = {
|
||||
HYPRCURSOR_THEME = "Nordzy-cursors"; # Dark variant (default)
|
||||
HYPRCURSOR_SIZE = 32;
|
||||
HYPRCURSOR_SIZE = 24;
|
||||
XCURSOR_THEME = "Nordzy-cursors";
|
||||
XCURSOR_SIZE = 32;
|
||||
XCURSOR_SIZE = 24;
|
||||
};
|
||||
|
||||
dconf = {
|
||||
|
||||
@@ -10,10 +10,9 @@ in
|
||||
{
|
||||
imports = [
|
||||
./rofi.nix
|
||||
./walker.nix
|
||||
./cursor.nix
|
||||
./waybar.nix
|
||||
./quickshell.nix
|
||||
./noctalia
|
||||
./wallpapers.nix
|
||||
];
|
||||
|
||||
@@ -23,8 +22,8 @@ in
|
||||
hyprshot
|
||||
playerctl
|
||||
hyprsunset
|
||||
hyprlock
|
||||
xdg-desktop-portal-termfilechooser
|
||||
libnotify
|
||||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
@@ -123,7 +122,7 @@ in
|
||||
|
||||
env = [
|
||||
"GDK_SCALE, 2.0"
|
||||
"XCURSOR_SIZE, 32"
|
||||
"XCURSOR_SIZE, 24"
|
||||
"HYPRCURSOR_THEME, rose-pine-hyprcursor"
|
||||
"HYPRCURSOR_SIZE, 24"
|
||||
];
|
||||
@@ -131,9 +130,14 @@ in
|
||||
"exec-once" = [
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"nm-applet"
|
||||
"hyprpaper"
|
||||
"hyprsunset"
|
||||
"nerd-dictation begin --simulate-input-tool WTYPE --suspend-on-start && touch ~/.cache/nerd-dictation-suspended"
|
||||
"noctalia-shell"
|
||||
];
|
||||
|
||||
layerrule = [
|
||||
"blur 1, match:namespace noctalia-background-.*"
|
||||
"ignore_alpha 0.5, match:namespace noctalia-background-.*"
|
||||
];
|
||||
workspace = [
|
||||
# no gaps when only window
|
||||
@@ -184,6 +188,7 @@ in
|
||||
"$mod" = "SUPER";
|
||||
|
||||
bind = [
|
||||
"$mod, n, exec, noctalia-shell ipc call controlCenter toggle"
|
||||
"$mod, g, hyprexpo:expo, toggle"
|
||||
# "$mod, tab, overview:toggle,"
|
||||
"$mod, b, exec, pkill waybar || waybar"
|
||||
@@ -193,8 +198,8 @@ in
|
||||
"$mod, f, fullscreen, 0"
|
||||
"$mod SHIFT, f, fullscreen, 1"
|
||||
|
||||
# walker app launcher
|
||||
"$mod, space, exec, walker"
|
||||
# app launcher
|
||||
"$mod, space, exec, noctalia-shell ipc call launcher toggle"
|
||||
# rofi (old)
|
||||
# "$mod, space, exec, launcher_t2"
|
||||
|
||||
@@ -267,13 +272,7 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
ipc = "on";
|
||||
splash = false;
|
||||
};
|
||||
};
|
||||
services.hyprpaper.enable = false;
|
||||
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
@@ -281,12 +280,12 @@ in
|
||||
general = {
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
lock_cmd = "hyprlock";
|
||||
lock_cmd = "noctalia-shell ipc call lockScreen lock";
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 900;
|
||||
on-timeout = "hyprlock";
|
||||
on-timeout = "noctalia-shell ipc call lockScreen lock";
|
||||
}
|
||||
{
|
||||
timeout = 1200;
|
||||
@@ -294,7 +293,6 @@ in
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
avatar = pkgs.fetchurl {
|
||||
url = "https://github.com/naps62.png";
|
||||
sha256 = "1ck11xg4rwcvn8dcc06ax7i9yfzy21v1n6h5mcjrkrici5sznlsv";
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [ inputs.noctalia.homeModules.default ];
|
||||
|
||||
programs.noctalia-shell = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.file.".face".source = avatar;
|
||||
|
||||
# symlink directly to the repo file so we can edit it through the GUI
|
||||
xdg.configFile."noctalia/settings.json".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "/home/naps62/projects/nixos-config/home/common/programs/hyprland/noctalia/settings.json";
|
||||
|
||||
# force overwrite files that noctalia may have turned into regular files
|
||||
xdg.configFile."hypr/hyprland.conf".force = true;
|
||||
xdg.configFile."gtk-3.0/gtk.css".force = true;
|
||||
|
||||
# source noctalia-generated color theme in hyprland
|
||||
wayland.windowManager.hyprland.settings.source = [
|
||||
"~/.config/hypr/noctalia/noctalia-colors.conf"
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,631 @@
|
||||
{
|
||||
"appLauncher": {
|
||||
"autoPasteClipboard": false,
|
||||
"clipboardWatchImageCommand": "wl-paste --type image --watch cliphist store",
|
||||
"clipboardWatchTextCommand": "wl-paste --type text --watch cliphist store",
|
||||
"clipboardWrapText": true,
|
||||
"customLaunchPrefix": "",
|
||||
"customLaunchPrefixEnabled": false,
|
||||
"density": "default",
|
||||
"enableClipPreview": true,
|
||||
"enableClipboardHistory": true,
|
||||
"enableSessionSearch": true,
|
||||
"enableSettingsSearch": true,
|
||||
"enableWindowsSearch": true,
|
||||
"iconMode": "tabler",
|
||||
"ignoreMouseInput": false,
|
||||
"overviewLayer": true,
|
||||
"pinnedApps": [
|
||||
],
|
||||
"position": "center",
|
||||
"screenshotAnnotationTool": "",
|
||||
"showCategories": true,
|
||||
"showIconBackground": false,
|
||||
"sortByMostUsed": true,
|
||||
"terminalCommand": "kitty -e",
|
||||
"useApp2Unit": false,
|
||||
"viewMode": "list"
|
||||
},
|
||||
"audio": {
|
||||
"cavaFrameRate": 30,
|
||||
"mprisBlacklist": [
|
||||
],
|
||||
"preferredPlayer": "spotify",
|
||||
"visualizerType": "linear",
|
||||
"volumeFeedback": false,
|
||||
"volumeOverdrive": false,
|
||||
"volumeStep": 5
|
||||
},
|
||||
"bar": {
|
||||
"autoHideDelay": 500,
|
||||
"autoShowDelay": 150,
|
||||
"backgroundOpacity": 0.93,
|
||||
"barType": "simple",
|
||||
"capsuleColorKey": "none",
|
||||
"capsuleOpacity": 1,
|
||||
"density": "comfortable",
|
||||
"displayMode": "auto_hide",
|
||||
"floating": false,
|
||||
"frameRadius": 12,
|
||||
"frameThickness": 8,
|
||||
"hideOnOverview": false,
|
||||
"marginHorizontal": 4,
|
||||
"marginVertical": 4,
|
||||
"monitors": [
|
||||
],
|
||||
"outerCorners": true,
|
||||
"position": "top",
|
||||
"screenOverrides": [
|
||||
],
|
||||
"showCapsule": true,
|
||||
"showOutline": false,
|
||||
"useSeparateOpacity": false,
|
||||
"widgets": {
|
||||
"center": [
|
||||
{
|
||||
"colorizeIcons": false,
|
||||
"hideMode": "hidden",
|
||||
"id": "ActiveWindow",
|
||||
"maxWidth": 145,
|
||||
"scrollingMode": "hover",
|
||||
"showIcon": true,
|
||||
"textColor": "none",
|
||||
"useFixedWidth": false
|
||||
},
|
||||
{
|
||||
"colorName": "primary",
|
||||
"hideWhenIdle": true,
|
||||
"id": "AudioVisualizer",
|
||||
"width": 200
|
||||
}
|
||||
],
|
||||
"left": [
|
||||
{
|
||||
"characterCount": 2,
|
||||
"colorizeIcons": false,
|
||||
"emptyColor": "secondary",
|
||||
"enableScrollWheel": true,
|
||||
"focusedColor": "primary",
|
||||
"followFocusedScreen": false,
|
||||
"groupedBorderOpacity": 1,
|
||||
"hideUnoccupied": true,
|
||||
"iconScale": 0.8,
|
||||
"id": "Workspace",
|
||||
"labelMode": "name",
|
||||
"occupiedColor": "secondary",
|
||||
"pillSize": 0.75,
|
||||
"showApplications": false,
|
||||
"showBadge": true,
|
||||
"showLabelsOnlyWhenOccupied": true,
|
||||
"unfocusedIconsOpacity": 1
|
||||
}
|
||||
],
|
||||
"right": [
|
||||
{
|
||||
"blacklist": [
|
||||
],
|
||||
"chevronColor": "none",
|
||||
"colorizeIcons": true,
|
||||
"drawerEnabled": false,
|
||||
"hidePassive": true,
|
||||
"id": "Tray",
|
||||
"pinned": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"displayMode": "alwaysShow",
|
||||
"iconColor": "none",
|
||||
"id": "Network",
|
||||
"textColor": "none"
|
||||
},
|
||||
{
|
||||
"displayMode": "alwaysShow",
|
||||
"iconColor": "none",
|
||||
"id": "Bluetooth",
|
||||
"textColor": "none"
|
||||
},
|
||||
{
|
||||
"deviceNativePath": "__default__",
|
||||
"displayMode": "graphic-clean",
|
||||
"hideIfIdle": false,
|
||||
"hideIfNotDetected": true,
|
||||
"id": "Battery",
|
||||
"showNoctaliaPerformance": false,
|
||||
"showPowerProfiles": false
|
||||
},
|
||||
{
|
||||
"displayMode": "onhover",
|
||||
"iconColor": "none",
|
||||
"id": "Volume",
|
||||
"middleClickCommand": "pwvucontrol || pavucontrol",
|
||||
"textColor": "none"
|
||||
},
|
||||
{
|
||||
"displayMode": "onhover",
|
||||
"iconColor": "none",
|
||||
"id": "Brightness",
|
||||
"textColor": "none"
|
||||
},
|
||||
{
|
||||
"deviceNativePath": "__default__",
|
||||
"displayMode": "graphic-clean",
|
||||
"hideIfIdle": false,
|
||||
"hideIfNotDetected": true,
|
||||
"id": "Battery",
|
||||
"showNoctaliaPerformance": false,
|
||||
"showPowerProfiles": false
|
||||
},
|
||||
{
|
||||
"clockColor": "none",
|
||||
"customFont": "",
|
||||
"formatHorizontal": "HH:mm ddd, MMM dd",
|
||||
"formatVertical": "HH mm - dd MM",
|
||||
"id": "Clock",
|
||||
"tooltipFormat": "HH:mm ddd, MMM dd",
|
||||
"useCustomFont": false
|
||||
},
|
||||
{
|
||||
"colorizeDistroLogo": false,
|
||||
"colorizeSystemIcon": "none",
|
||||
"customIconPath": "",
|
||||
"enableColorization": true,
|
||||
"icon": "noctalia",
|
||||
"id": "ControlCenter",
|
||||
"useDistroLogo": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"brightness": {
|
||||
"brightnessStep": 5,
|
||||
"enableDdcSupport": false,
|
||||
"enforceMinimum": true
|
||||
},
|
||||
"calendar": {
|
||||
"cards": [
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "calendar-header-card"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "calendar-month-card"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "weather-card"
|
||||
}
|
||||
]
|
||||
},
|
||||
"colorSchemes": {
|
||||
"darkMode": false,
|
||||
"generationMethod": "tonal-spot",
|
||||
"manualSunrise": "06:30",
|
||||
"manualSunset": "18:30",
|
||||
"monitorForColors": "",
|
||||
"predefinedScheme": "Nord",
|
||||
"schedulingMode": "off",
|
||||
"useWallpaperColors": false
|
||||
},
|
||||
"controlCenter": {
|
||||
"cards": [
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "profile-card"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "shortcuts-card"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "audio-card"
|
||||
},
|
||||
{
|
||||
"enabled": false,
|
||||
"id": "brightness-card"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "weather-card"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "media-sysmon-card"
|
||||
}
|
||||
],
|
||||
"diskPath": "/",
|
||||
"position": "close_to_bar_button",
|
||||
"shortcuts": {
|
||||
"left": [
|
||||
{
|
||||
"id": "Network"
|
||||
},
|
||||
{
|
||||
"id": "Bluetooth"
|
||||
},
|
||||
{
|
||||
"id": "WallpaperSelector"
|
||||
},
|
||||
{
|
||||
"id": "NoctaliaPerformance"
|
||||
}
|
||||
],
|
||||
"right": [
|
||||
{
|
||||
"id": "Notifications"
|
||||
},
|
||||
{
|
||||
"id": "PowerProfile"
|
||||
},
|
||||
{
|
||||
"id": "KeepAwake"
|
||||
},
|
||||
{
|
||||
"id": "NightLight"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"desktopWidgets": {
|
||||
"enabled": false,
|
||||
"gridSnap": false,
|
||||
"monitorWidgets": [
|
||||
]
|
||||
},
|
||||
"dock": {
|
||||
"animationSpeed": 1,
|
||||
"backgroundOpacity": 1,
|
||||
"colorizeIcons": false,
|
||||
"deadOpacity": 0.6,
|
||||
"displayMode": "auto_hide",
|
||||
"dockType": "floating",
|
||||
"enabled": false,
|
||||
"floatingRatio": 0,
|
||||
"inactiveIndicators": true,
|
||||
"monitors": [
|
||||
],
|
||||
"onlySameOutput": true,
|
||||
"pinnedApps": [
|
||||
],
|
||||
"pinnedStatic": false,
|
||||
"position": "bottom",
|
||||
"showFrameIndicator": true,
|
||||
"sitOnFrame": false,
|
||||
"size": 1.5
|
||||
},
|
||||
"general": {
|
||||
"allowPanelsOnScreenWithoutBar": true,
|
||||
"allowPasswordWithFprintd": true,
|
||||
"animationDisabled": false,
|
||||
"animationSpeed": 1,
|
||||
"autoStartAuth": true,
|
||||
"avatarImage": "/home/naps62/.face",
|
||||
"boxRadiusRatio": 1,
|
||||
"clockFormat": "hh\\nmm",
|
||||
"clockStyle": "custom",
|
||||
"compactLockScreen": false,
|
||||
"dimmerOpacity": 0.4,
|
||||
"enableLockScreenCountdown": true,
|
||||
"enableShadows": true,
|
||||
"forceBlackScreenCorners": false,
|
||||
"iRadiusRatio": 1,
|
||||
"keybinds": {
|
||||
"keyDown": [
|
||||
"Down"
|
||||
],
|
||||
"keyEnter": [
|
||||
"Return"
|
||||
],
|
||||
"keyEscape": [
|
||||
"Esc"
|
||||
],
|
||||
"keyLeft": [
|
||||
"Left"
|
||||
],
|
||||
"keyRemove": [
|
||||
"Del"
|
||||
],
|
||||
"keyRight": [
|
||||
"Right"
|
||||
],
|
||||
"keyUp": [
|
||||
"Up"
|
||||
]
|
||||
},
|
||||
"language": "",
|
||||
"lockOnSuspend": true,
|
||||
"lockScreenAnimations": true,
|
||||
"lockScreenBlur": 0,
|
||||
"lockScreenCountdownDuration": 10000,
|
||||
"lockScreenMonitors": [
|
||||
],
|
||||
"lockScreenTint": 0,
|
||||
"radiusRatio": 1,
|
||||
"reverseScroll": false,
|
||||
"scaleRatio": 1,
|
||||
"screenRadiusRatio": 1,
|
||||
"shadowDirection": "bottom_right",
|
||||
"shadowOffsetX": 2,
|
||||
"shadowOffsetY": 3,
|
||||
"showChangelogOnStartup": false,
|
||||
"showHibernateOnLockScreen": true,
|
||||
"showScreenCorners": false,
|
||||
"showSessionButtonsOnLockScreen": true,
|
||||
"telemetryEnabled": false
|
||||
},
|
||||
"hooks": {
|
||||
"darkModeChange": "",
|
||||
"enabled": false,
|
||||
"performanceModeDisabled": "",
|
||||
"performanceModeEnabled": "",
|
||||
"screenLock": "",
|
||||
"screenUnlock": "",
|
||||
"session": "",
|
||||
"startup": "",
|
||||
"wallpaperChange": ""
|
||||
},
|
||||
"location": {
|
||||
"analogClockInCalendar": true,
|
||||
"firstDayOfWeek": -1,
|
||||
"hideWeatherCityName": false,
|
||||
"hideWeatherTimezone": false,
|
||||
"name": "Braga, Portugal",
|
||||
"showCalendarEvents": true,
|
||||
"showCalendarWeather": true,
|
||||
"showWeekNumberInCalendar": false,
|
||||
"use12hourFormat": false,
|
||||
"useFahrenheit": false,
|
||||
"weatherEnabled": true,
|
||||
"weatherShowEffects": true
|
||||
},
|
||||
"network": {
|
||||
"airplaneModeEnabled": false,
|
||||
"bluetoothDetailsViewMode": "grid",
|
||||
"bluetoothHideUnnamedDevices": false,
|
||||
"bluetoothRssiPollIntervalMs": 60000,
|
||||
"bluetoothRssiPollingEnabled": false,
|
||||
"disableDiscoverability": false,
|
||||
"wifiDetailsViewMode": "grid",
|
||||
"wifiEnabled": true
|
||||
},
|
||||
"nightLight": {
|
||||
"autoSchedule": true,
|
||||
"dayTemp": "6500",
|
||||
"enabled": true,
|
||||
"forced": false,
|
||||
"manualSunrise": "06:30",
|
||||
"manualSunset": "18:30",
|
||||
"nightTemp": "4000"
|
||||
},
|
||||
"notifications": {
|
||||
"backgroundOpacity": 1,
|
||||
"clearDismissed": true,
|
||||
"criticalUrgencyDuration": 15,
|
||||
"density": "compact",
|
||||
"enableBatteryToast": true,
|
||||
"enableKeyboardLayoutToast": true,
|
||||
"enableMarkdown": true,
|
||||
"enableMediaToast": true,
|
||||
"enabled": true,
|
||||
"location": "top_right",
|
||||
"lowUrgencyDuration": 3,
|
||||
"monitors": [
|
||||
],
|
||||
"normalUrgencyDuration": 8,
|
||||
"overlayLayer": true,
|
||||
"respectExpireTimeout": false,
|
||||
"saveToHistory": {
|
||||
"critical": true,
|
||||
"low": true,
|
||||
"normal": true
|
||||
},
|
||||
"sounds": {
|
||||
"criticalSoundFile": "",
|
||||
"enabled": false,
|
||||
"excludedApps": "discord,firefox,chrome,chromium,edge",
|
||||
"lowSoundFile": "",
|
||||
"normalSoundFile": "",
|
||||
"separateSounds": false,
|
||||
"volume": 0.5
|
||||
}
|
||||
},
|
||||
"osd": {
|
||||
"autoHideMs": 2000,
|
||||
"backgroundOpacity": 1,
|
||||
"enabled": true,
|
||||
"enabledTypes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"location": "top",
|
||||
"monitors": [
|
||||
],
|
||||
"overlayLayer": true
|
||||
},
|
||||
"plugins": {
|
||||
"autoUpdate": false
|
||||
},
|
||||
"sessionMenu": {
|
||||
"countdownDuration": 10000,
|
||||
"enableCountdown": true,
|
||||
"largeButtonsLayout": "single-row",
|
||||
"largeButtonsStyle": true,
|
||||
"position": "center",
|
||||
"powerOptions": [
|
||||
{
|
||||
"action": "lock",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "1"
|
||||
},
|
||||
{
|
||||
"action": "suspend",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "2"
|
||||
},
|
||||
{
|
||||
"action": "hibernate",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "3"
|
||||
},
|
||||
{
|
||||
"action": "reboot",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "4"
|
||||
},
|
||||
{
|
||||
"action": "logout",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "5"
|
||||
},
|
||||
{
|
||||
"action": "shutdown",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "6"
|
||||
},
|
||||
{
|
||||
"action": "rebootToUefi",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": ""
|
||||
}
|
||||
],
|
||||
"showHeader": true,
|
||||
"showKeybinds": true
|
||||
},
|
||||
"settingsVersion": 53,
|
||||
"systemMonitor": {
|
||||
"batteryCriticalThreshold": 5,
|
||||
"batteryWarningThreshold": 20,
|
||||
"cpuCriticalThreshold": 90,
|
||||
"cpuWarningThreshold": 80,
|
||||
"criticalColor": "",
|
||||
"diskAvailCriticalThreshold": 10,
|
||||
"diskAvailWarningThreshold": 20,
|
||||
"diskCriticalThreshold": 90,
|
||||
"diskWarningThreshold": 80,
|
||||
"enableDgpuMonitoring": false,
|
||||
"externalMonitor": "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor",
|
||||
"gpuCriticalThreshold": 90,
|
||||
"gpuWarningThreshold": 80,
|
||||
"memCriticalThreshold": 90,
|
||||
"memWarningThreshold": 80,
|
||||
"swapCriticalThreshold": 90,
|
||||
"swapWarningThreshold": 80,
|
||||
"tempCriticalThreshold": 90,
|
||||
"tempWarningThreshold": 80,
|
||||
"useCustomColors": false,
|
||||
"warningColor": ""
|
||||
},
|
||||
"templates": {
|
||||
"activeTemplates": [
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "zenBrowser"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "hyprland"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "kitty"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "yazi"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "zathura"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "gtk"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "qt"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "btop"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "spicetify"
|
||||
}
|
||||
],
|
||||
"enableUserTheming": false
|
||||
},
|
||||
"ui": {
|
||||
"bluetoothDetailsViewMode": "grid",
|
||||
"bluetoothHideUnnamedDevices": false,
|
||||
"boxBorderEnabled": false,
|
||||
"fontDefault": "Sans Serif",
|
||||
"fontDefaultScale": 1,
|
||||
"fontFixed": "monospace",
|
||||
"fontFixedScale": 1,
|
||||
"networkPanelView": "wifi",
|
||||
"panelBackgroundOpacity": 0.93,
|
||||
"panelsAttachedToBar": true,
|
||||
"settingsPanelMode": "attached",
|
||||
"tooltipsEnabled": true,
|
||||
"wifiDetailsViewMode": "grid"
|
||||
},
|
||||
"wallpaper": {
|
||||
"automationEnabled": true,
|
||||
"directory": "/home/naps62/.cache/wallpapers/3840x2160",
|
||||
"enableMultiMonitorDirectories": false,
|
||||
"enabled": true,
|
||||
"favorites": [
|
||||
],
|
||||
"fillColor": "#5e81ac",
|
||||
"fillMode": "crop",
|
||||
"hideWallpaperFilenames": false,
|
||||
"monitorDirectories": [
|
||||
],
|
||||
"overviewBlur": 0.4,
|
||||
"overviewEnabled": false,
|
||||
"overviewTint": 0.6,
|
||||
"panelPosition": "follow_bar",
|
||||
"randomIntervalSec": 21600,
|
||||
"setWallpaperOnAllMonitors": true,
|
||||
"showHiddenFiles": false,
|
||||
"skipStartupTransition": false,
|
||||
"solidColor": "#1a1a2e",
|
||||
"sortOrder": "name",
|
||||
"transitionDuration": 1500,
|
||||
"transitionEdgeSmoothness": 0.05,
|
||||
"transitionType": "fade",
|
||||
"useSolidColor": false,
|
||||
"useWallhaven": false,
|
||||
"viewMode": "browse",
|
||||
"wallhavenApiKey": "",
|
||||
"wallhavenCategories": "111",
|
||||
"wallhavenOrder": "desc",
|
||||
"wallhavenPurity": "100",
|
||||
"wallhavenQuery": "",
|
||||
"wallhavenRatios": "",
|
||||
"wallhavenResolutionHeight": "",
|
||||
"wallhavenResolutionMode": "atleast",
|
||||
"wallhavenResolutionWidth": "",
|
||||
"wallhavenSorting": "relevance",
|
||||
"wallpaperChangeMode": "random"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
];
|
||||
|
||||
xdg.configFile."quickshell" = {
|
||||
source = ./quickshell;
|
||||
recursive = true;
|
||||
};
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
import Quickshell
|
||||
import Quickshell.Hyprland
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
Scope {
|
||||
id: root
|
||||
property bool barVisible: false
|
||||
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
|
||||
Scope {
|
||||
id: perScreen
|
||||
required property var modelData
|
||||
|
||||
// invisible trigger zone at the top edge
|
||||
PanelWindow {
|
||||
id: trigger
|
||||
screen: perScreen.modelData
|
||||
visible: !root.barVisible
|
||||
|
||||
anchors {
|
||||
top: true
|
||||
left: true
|
||||
right: true
|
||||
}
|
||||
|
||||
exclusionMode: ExclusionMode.Ignore
|
||||
implicitHeight: 4
|
||||
color: "transparent"
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: root.barVisible = true
|
||||
}
|
||||
}
|
||||
|
||||
// the actual bar
|
||||
PanelWindow {
|
||||
id: bar
|
||||
screen: perScreen.modelData
|
||||
visible: root.barVisible
|
||||
|
||||
anchors {
|
||||
top: true
|
||||
left: true
|
||||
right: true
|
||||
}
|
||||
|
||||
exclusionMode: ExclusionMode.Ignore
|
||||
implicitHeight: 32
|
||||
color: "#e611111b"
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
propagateComposedEvents: true
|
||||
// keep bar visible while mouse is on it
|
||||
onExited: hideTimer.restart()
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: 12
|
||||
anchors.rightMargin: 12
|
||||
spacing: 0
|
||||
|
||||
Workspaces {
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
}
|
||||
|
||||
Item { Layout.fillWidth: true }
|
||||
|
||||
SysTray {
|
||||
Layout.alignment: Qt.AlignRight
|
||||
Layout.rightMargin: 16
|
||||
}
|
||||
|
||||
ClockWidget {
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: hideTimer
|
||||
interval: 500
|
||||
onTriggered: root.barVisible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
RowLayout {
|
||||
spacing: 12
|
||||
|
||||
Text {
|
||||
text: Time.date
|
||||
font.family: "FiraCode Nerd Font"
|
||||
font.pixelSize: 13
|
||||
color: "#6c7086"
|
||||
}
|
||||
|
||||
Text {
|
||||
text: Time.clock
|
||||
font.family: "FiraCode Nerd Font"
|
||||
font.pixelSize: 14
|
||||
color: "#bac2de"
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import Quickshell
|
||||
import Quickshell.Services.SystemTray
|
||||
|
||||
RowLayout {
|
||||
spacing: 6
|
||||
|
||||
Repeater {
|
||||
model: SystemTray.items
|
||||
|
||||
Image {
|
||||
required property SystemTrayItem modelData
|
||||
|
||||
Layout.preferredWidth: 18
|
||||
Layout.preferredHeight: 18
|
||||
source: modelData.icon
|
||||
fillMode: Image.PreserveAspectFit
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
onClicked: (mouse) => {
|
||||
if (mouse.button === Qt.RightButton || modelData.onlyMenu) {
|
||||
modelData.display(bar, parent.x, bar.height)
|
||||
} else {
|
||||
modelData.activate()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ToolTip {
|
||||
id: tooltip
|
||||
visible: hoverArea.containsMouse
|
||||
text: modelData.tooltipTitle || modelData.title || ""
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: hoverArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
acceptedButtons: Qt.NoButton
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
pragma Singleton
|
||||
|
||||
import Quickshell
|
||||
import QtQuick
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
readonly property string clock: Qt.formatDateTime(sysClock.date, "hh:mm")
|
||||
readonly property string date: Qt.formatDateTime(sysClock.date, "ddd MMM d")
|
||||
|
||||
SystemClock {
|
||||
id: sysClock
|
||||
precision: SystemClock.Minutes
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell.Hyprland
|
||||
|
||||
RowLayout {
|
||||
spacing: 4
|
||||
|
||||
Repeater {
|
||||
model: [1, 2, 3, 4, 5, 6]
|
||||
|
||||
Rectangle {
|
||||
required property int modelData
|
||||
property bool active: Hyprland.focusedMonitor?.activeWorkspace?.id === modelData
|
||||
property bool occupied: {
|
||||
for (let i = 0; i < Hyprland.workspaces.values.length; i++) {
|
||||
let ws = Hyprland.workspaces.values[i];
|
||||
if (ws.id === modelData && ws.windows > 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Layout.preferredWidth: 24
|
||||
Layout.preferredHeight: 24
|
||||
radius: 4
|
||||
color: active ? "#b4befe" : "transparent"
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: modelData
|
||||
font.family: "FiraCode Nerd Font"
|
||||
font.pixelSize: 13
|
||||
color: active ? "#11111b" : occupied ? "#bac2de" : "#6c7086"
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: Hyprland.dispatch("workspace " + modelData)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import Quickshell
|
||||
|
||||
Scope {
|
||||
Bar {}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [ inputs.walker.homeManagerModules.default ];
|
||||
|
||||
programs.walker = {
|
||||
enable = true;
|
||||
runAsService = true;
|
||||
|
||||
# Using default theme - clean dark theme with good defaults
|
||||
# You can customize later by copying from:
|
||||
# https://github.com/abenz1267/walker/tree/master/resources/themes/default
|
||||
};
|
||||
}
|
||||
@@ -64,29 +64,22 @@ let
|
||||
"https://images.hdqwalls.com/download/starfield-i-mac-ie-2160x3840.jpg"
|
||||
];
|
||||
|
||||
# Create wallpaper rotation script
|
||||
rotateScript = pkgs.writeShellScript "hyprpaper-rotate" ''
|
||||
# Wallpaper fetch script - downloads wallpapers to cache
|
||||
fetchScript = pkgs.writeShellScript "wallpaper-fetch" ''
|
||||
set -euo pipefail
|
||||
|
||||
# Check if hyprpaper is running
|
||||
if ! pgrep -x hyprpaper > /dev/null; then
|
||||
echo "Error: hyprpaper is not running"
|
||||
echo "Start it with: hyprpaper &"
|
||||
exit 1
|
||||
fi
|
||||
HORIZONTAL_DIR="$HOME/.cache/wallpapers/3840x2160"
|
||||
VERTICAL_DIR="$HOME/.cache/wallpapers/2160x3840"
|
||||
mkdir -p "$HORIZONTAL_DIR" "$VERTICAL_DIR"
|
||||
|
||||
CACHE_DIR="$HOME/.cache/wallpapers"
|
||||
mkdir -p "$CACHE_DIR"
|
||||
|
||||
# Arrays of wallpaper URLs
|
||||
HORIZONTAL=(${builtins.concatStringsSep " " (map (url: ''"${url}"'') horizontal)})
|
||||
VERTICAL=(${builtins.concatStringsSep " " (map (url: ''"${url}"'') vertical)})
|
||||
|
||||
# Function to download wallpaper if not cached
|
||||
get_wallpaper() {
|
||||
download() {
|
||||
local url="$1"
|
||||
local dir="$2"
|
||||
local filename=$(basename "$url")
|
||||
local filepath="$CACHE_DIR/$filename"
|
||||
local filepath="$dir/$filename"
|
||||
|
||||
if [ ! -f "$filepath" ]; then
|
||||
echo "Downloading $filename..." >&2
|
||||
@@ -95,81 +88,23 @@ let
|
||||
return 1
|
||||
}
|
||||
fi
|
||||
|
||||
echo "$filepath"
|
||||
}
|
||||
|
||||
# Function to get random element from array
|
||||
random_choice() {
|
||||
local arr=("$@")
|
||||
local size=''${#arr[@]}
|
||||
local idx=$((RANDOM % size))
|
||||
echo "''${arr[$idx]}"
|
||||
}
|
||||
|
||||
# Get list of connected monitors and their orientations
|
||||
readarray -t MONITORS < <(${pkgs.hyprland}/bin/hyprctl monitors -j | \
|
||||
${pkgs.jq}/bin/jq -r '.[] | "\(.name)|\(.width)|\(.height)|\(.transform)"')
|
||||
|
||||
# Apply wallpapers to each monitor
|
||||
for monitor_info in "''${MONITORS[@]}"; do
|
||||
IFS='|' read -r name width height transform <<< "$monitor_info"
|
||||
|
||||
# Determine if monitor is vertical (considering transform)
|
||||
# transform 1 or 3 means 90/270 degree rotation
|
||||
if [[ "$transform" == "1" || "$transform" == "3" ]]; then
|
||||
# Transform swaps width/height, so check original dimensions
|
||||
if [ "$width" -lt "$height" ]; then
|
||||
# After transform, it's horizontal
|
||||
wallpaper_url=$(random_choice "''${HORIZONTAL[@]}")
|
||||
else
|
||||
# After transform, it's vertical
|
||||
wallpaper_url=$(random_choice "''${VERTICAL[@]}")
|
||||
fi
|
||||
else
|
||||
# No rotation or 180 degree rotation
|
||||
if [ "$width" -lt "$height" ]; then
|
||||
wallpaper_url=$(random_choice "''${VERTICAL[@]}")
|
||||
else
|
||||
wallpaper_url=$(random_choice "''${HORIZONTAL[@]}")
|
||||
fi
|
||||
fi
|
||||
|
||||
# Download and apply wallpaper
|
||||
wallpaper_path=$(get_wallpaper "$wallpaper_url")
|
||||
if [ -n "$wallpaper_path" ]; then
|
||||
echo "Setting $name to $wallpaper_path" >&2
|
||||
${pkgs.hyprland}/bin/hyprctl hyprpaper wallpaper "$name,$wallpaper_path,cover"
|
||||
fi
|
||||
echo "Fetching horizontal wallpapers..."
|
||||
for url in "''${HORIZONTAL[@]}"; do
|
||||
download "$url" "$HORIZONTAL_DIR"
|
||||
done
|
||||
|
||||
echo "Fetching vertical wallpapers..."
|
||||
for url in "''${VERTICAL[@]}"; do
|
||||
download "$url" "$VERTICAL_DIR"
|
||||
done
|
||||
|
||||
echo "Done. Wallpapers cached in:"
|
||||
echo " Horizontal: $HORIZONTAL_DIR"
|
||||
echo " Vertical: $VERTICAL_DIR"
|
||||
'';
|
||||
in
|
||||
{
|
||||
# Export for use in monitors.nix
|
||||
home.file.".local/bin/hyprpaper-rotate".source = rotateScript;
|
||||
|
||||
# Systemd service and timer for rotation
|
||||
systemd.user.services.hyprpaper-rotate = {
|
||||
Unit = {
|
||||
Description = "Rotate Hyprland wallpapers";
|
||||
After = [ "graphical-session.target" ];
|
||||
};
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${rotateScript}";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.timers.hyprpaper-rotate = {
|
||||
Unit = {
|
||||
Description = "Rotate Hyprland wallpapers every 12 hours";
|
||||
};
|
||||
Timer = {
|
||||
OnUnitActiveSec = "12h";
|
||||
Persistent = true;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
home.file.".local/bin/wallpaper-fetch".source = fetchScript;
|
||||
}
|
||||
|
||||
@@ -63,10 +63,8 @@
|
||||
"f7>/" = "goto_session";
|
||||
};
|
||||
|
||||
# Default theme - Catppuccin-Mocha (dark)
|
||||
# This will be overridden by darkman scripts
|
||||
extraConfig = ''
|
||||
include current-theme.conf
|
||||
include themes/noctalia.conf
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -69,4 +69,6 @@
|
||||
enable = true;
|
||||
platform = "ipu6ep";
|
||||
};
|
||||
|
||||
services.fprintd.enable = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user