noctalia with fingerprint lock screen
This commit is contained in:
@@ -30,7 +30,9 @@
|
|||||||
"Bash(darkman get:*)",
|
"Bash(darkman get:*)",
|
||||||
"Bash(dconf read:*)",
|
"Bash(dconf read:*)",
|
||||||
"Bash(journalctl:*)",
|
"Bash(journalctl:*)",
|
||||||
"Bash(hyprctl:*)"
|
"Bash(hyprctl:*)",
|
||||||
|
"WebFetch(domain:docs.noctalia.dev)",
|
||||||
|
"WebFetch(domain:gerg-l.github.io)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"sandbox": {
|
"sandbox": {
|
||||||
|
|||||||
Generated
+66
-92
@@ -68,31 +68,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"ethui": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
@@ -872,11 +847,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_9": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768564909,
|
"lastModified": 1770197578,
|
||||||
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -906,6 +881,26 @@
|
|||||||
"type": "github"
|
"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": {
|
"nvchad-starter": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -969,26 +964,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"claude-code": "claude-code",
|
"claude-code": "claude-code",
|
||||||
@@ -1002,13 +977,13 @@
|
|||||||
"nix-colors": "nix-colors",
|
"nix-colors": "nix-colors",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_6",
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
|
"noctalia": "noctalia",
|
||||||
"nvchad-starter": "nvchad-starter",
|
"nvchad-starter": "nvchad-starter",
|
||||||
"nvchad4nix": "nvchad4nix",
|
"nvchad4nix": "nvchad4nix",
|
||||||
"quickshell": "quickshell",
|
|
||||||
"rose-pine-hyprcursor": "rose-pine-hyprcursor",
|
"rose-pine-hyprcursor": "rose-pine-hyprcursor",
|
||||||
"systems": "systems_9",
|
"spicetify-nix": "spicetify-nix",
|
||||||
|
"systems": "systems_10",
|
||||||
"utils": "utils_3",
|
"utils": "utils_3",
|
||||||
"walker": "walker",
|
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1050,6 +1025,25 @@
|
|||||||
"type": "github"
|
"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": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
@@ -1066,21 +1060,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_10": {
|
"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": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1689347949,
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
@@ -1095,6 +1074,21 @@
|
|||||||
"type": "github"
|
"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": {
|
"systems_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
@@ -1202,16 +1196,16 @@
|
|||||||
},
|
},
|
||||||
"systems_9": {
|
"systems_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
"repo": "default-linux",
|
"repo": "default",
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
"repo": "default-linux",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1253,7 +1247,7 @@
|
|||||||
},
|
},
|
||||||
"utils_3": {
|
"utils_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_10"
|
"systems": "systems_11"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
@@ -1269,26 +1263,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"xdph": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprland-protocols": [
|
"hyprland-protocols": [
|
||||||
|
|||||||
@@ -47,11 +47,11 @@
|
|||||||
url = "github:KZDKM/Hyprspace";
|
url = "github:KZDKM/Hyprspace";
|
||||||
inputs.hyprland.follows = "hyprland";
|
inputs.hyprland.follows = "hyprland";
|
||||||
};
|
};
|
||||||
quickshell = {
|
noctalia = {
|
||||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
url = "github:noctalia-dev/noctalia-shell";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
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";
|
claude-code.url = "github:sadjow/claude-code-nix";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,18 @@
|
|||||||
{ ... }:
|
{ pkgs, inputs, ... }:
|
||||||
{
|
{
|
||||||
home.file.".default-npm-packages".text = ''
|
home.file.".default-npm-packages".text = ''
|
||||||
@anthropic-ai/claude-code
|
@anthropic-ai/claude-code
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
inputs.claude-code.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||||
|
|
||||||
|
# sandbox
|
||||||
|
bubblewrap
|
||||||
|
socat
|
||||||
|
libseccomp
|
||||||
|
];
|
||||||
|
|
||||||
# Commands
|
# Commands
|
||||||
home.file.".claude/commands/merge.md".source = ./commands/merge.md;
|
home.file.".claude/commands/merge.md".source = ./commands/merge.md;
|
||||||
home.file.".claude/commands/update.md".source = ./commands/update.md;
|
home.file.".claude/commands/update.md".source = ./commands/update.md;
|
||||||
@@ -19,9 +28,11 @@
|
|||||||
|
|
||||||
# Skills: knowledge
|
# Skills: knowledge
|
||||||
home.file.".claude/skills/git-master/SKILL.md".source = ./skills/git-master/SKILL.md;
|
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/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
|
# Skills: workflows
|
||||||
home.file.".claude/skills/smart-debug/SKILL.md".source = ./skills/smart-debug/SKILL.md;
|
home.file.".claude/skills/smart-debug/SKILL.md".source = ./skills/smart-debug/SKILL.md;
|
||||||
|
|||||||
@@ -22,11 +22,11 @@
|
|||||||
export XCURSOR_THEME="Nordzy-cursors"
|
export XCURSOR_THEME="Nordzy-cursors"
|
||||||
|
|
||||||
# Update Hyprland cursor theme
|
# Update Hyprland cursor theme
|
||||||
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-cursors 42
|
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-cursors 24
|
||||||
'';
|
'';
|
||||||
kitty-theme = ''
|
kitty-theme = ''
|
||||||
# Switch all Kitty instances to dark theme
|
# Reload kitty config to pick up noctalia theme changes
|
||||||
${pkgs.kitty}/bin/kitten themes --reload-in=all Catppuccin-Mocha
|
kill -SIGUSR1 $(pidof kitty) 2>/dev/null || true
|
||||||
'';
|
'';
|
||||||
claude-theme = ''
|
claude-theme = ''
|
||||||
# Switch Claude Code to dark 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"
|
${pkgs.jq}/bin/jq '.theme = "dark"' "$CLAUDE_CONFIG" > "$CLAUDE_CONFIG.tmp" && mv "$CLAUDE_CONFIG.tmp" "$CLAUDE_CONFIG"
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
noctalia-theme = ''
|
||||||
|
noctalia-shell ipc call darkMode setDark
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
lightModeScripts = {
|
lightModeScripts = {
|
||||||
gtk-theme = ''
|
gtk-theme = ''
|
||||||
@@ -52,11 +55,11 @@
|
|||||||
export XCURSOR_THEME="Nordzy-white"
|
export XCURSOR_THEME="Nordzy-white"
|
||||||
|
|
||||||
# Update Hyprland cursor theme
|
# Update Hyprland cursor theme
|
||||||
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-white 42
|
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-white 24
|
||||||
'';
|
'';
|
||||||
kitty-theme = ''
|
kitty-theme = ''
|
||||||
# Switch all Kitty instances to light theme
|
# Reload kitty config to pick up noctalia theme changes
|
||||||
${pkgs.kitty}/bin/kitten themes --reload-in=all Catppuccin-Latte
|
kill -SIGUSR1 $(pidof kitty) 2>/dev/null || true
|
||||||
'';
|
'';
|
||||||
claude-theme = ''
|
claude-theme = ''
|
||||||
# Switch Claude Code to light 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"
|
${pkgs.jq}/bin/jq '.theme = "light"' "$CLAUDE_CONFIG" > "$CLAUDE_CONFIG.tmp" && mv "$CLAUDE_CONFIG.tmp" "$CLAUDE_CONFIG"
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
noctalia-theme = ''
|
||||||
|
noctalia-shell ipc call darkMode setLight
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
{ pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./darkman.nix
|
./darkman.nix
|
||||||
|
./spicetify.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# various
|
# various
|
||||||
google-chrome
|
google-chrome
|
||||||
spotify
|
|
||||||
spicetify-cli
|
|
||||||
thunar
|
thunar
|
||||||
obsidian
|
obsidian
|
||||||
mpv
|
mpv
|
||||||
@@ -19,6 +18,8 @@
|
|||||||
imv
|
imv
|
||||||
pavucontrol
|
pavucontrol
|
||||||
zathura
|
zathura
|
||||||
|
libsForQt5.qt5ct
|
||||||
|
kdePackages.qt6ct
|
||||||
nwg-look
|
nwg-look
|
||||||
xournalpp
|
xournalpp
|
||||||
jq
|
jq
|
||||||
@@ -66,4 +67,27 @@
|
|||||||
package = pkgs.numix-cursor-theme;
|
package = pkgs.numix-cursor-theme;
|
||||||
name = "Numix-Cursor-Light";
|
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
|
lsof
|
||||||
ktlint
|
ktlint
|
||||||
croc
|
croc
|
||||||
inputs.claude-code.packages.${pkgs.stdenv.hostPlatform.system}.default
|
|
||||||
opencode
|
opencode
|
||||||
|
|
||||||
# typst
|
# typst
|
||||||
typst
|
typst
|
||||||
typstyle
|
typstyle
|
||||||
|
|
||||||
renderdoc
|
|
||||||
|
|
||||||
mkcert
|
mkcert
|
||||||
nss.tools
|
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 = {
|
home.sessionVariables = {
|
||||||
HYPRCURSOR_THEME = "Nordzy-cursors"; # Dark variant (default)
|
HYPRCURSOR_THEME = "Nordzy-cursors"; # Dark variant (default)
|
||||||
HYPRCURSOR_SIZE = 32;
|
HYPRCURSOR_SIZE = 24;
|
||||||
XCURSOR_THEME = "Nordzy-cursors";
|
XCURSOR_THEME = "Nordzy-cursors";
|
||||||
XCURSOR_SIZE = 32;
|
XCURSOR_SIZE = 24;
|
||||||
};
|
};
|
||||||
|
|
||||||
dconf = {
|
dconf = {
|
||||||
|
|||||||
@@ -10,10 +10,9 @@ in
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./rofi.nix
|
./rofi.nix
|
||||||
./walker.nix
|
|
||||||
./cursor.nix
|
./cursor.nix
|
||||||
./waybar.nix
|
./waybar.nix
|
||||||
./quickshell.nix
|
./noctalia
|
||||||
./wallpapers.nix
|
./wallpapers.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -23,8 +22,8 @@ in
|
|||||||
hyprshot
|
hyprshot
|
||||||
playerctl
|
playerctl
|
||||||
hyprsunset
|
hyprsunset
|
||||||
hyprlock
|
|
||||||
xdg-desktop-portal-termfilechooser
|
xdg-desktop-portal-termfilechooser
|
||||||
|
libnotify
|
||||||
];
|
];
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
@@ -123,7 +122,7 @@ in
|
|||||||
|
|
||||||
env = [
|
env = [
|
||||||
"GDK_SCALE, 2.0"
|
"GDK_SCALE, 2.0"
|
||||||
"XCURSOR_SIZE, 32"
|
"XCURSOR_SIZE, 24"
|
||||||
"HYPRCURSOR_THEME, rose-pine-hyprcursor"
|
"HYPRCURSOR_THEME, rose-pine-hyprcursor"
|
||||||
"HYPRCURSOR_SIZE, 24"
|
"HYPRCURSOR_SIZE, 24"
|
||||||
];
|
];
|
||||||
@@ -131,9 +130,14 @@ in
|
|||||||
"exec-once" = [
|
"exec-once" = [
|
||||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||||
"nm-applet"
|
"nm-applet"
|
||||||
"hyprpaper"
|
|
||||||
"hyprsunset"
|
"hyprsunset"
|
||||||
"nerd-dictation begin --simulate-input-tool WTYPE --suspend-on-start && touch ~/.cache/nerd-dictation-suspended"
|
"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 = [
|
workspace = [
|
||||||
# no gaps when only window
|
# no gaps when only window
|
||||||
@@ -184,6 +188,7 @@ in
|
|||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
bind = [
|
bind = [
|
||||||
|
"$mod, n, exec, noctalia-shell ipc call controlCenter toggle"
|
||||||
"$mod, g, hyprexpo:expo, toggle"
|
"$mod, g, hyprexpo:expo, toggle"
|
||||||
# "$mod, tab, overview:toggle,"
|
# "$mod, tab, overview:toggle,"
|
||||||
"$mod, b, exec, pkill waybar || waybar"
|
"$mod, b, exec, pkill waybar || waybar"
|
||||||
@@ -193,8 +198,8 @@ in
|
|||||||
"$mod, f, fullscreen, 0"
|
"$mod, f, fullscreen, 0"
|
||||||
"$mod SHIFT, f, fullscreen, 1"
|
"$mod SHIFT, f, fullscreen, 1"
|
||||||
|
|
||||||
# walker app launcher
|
# app launcher
|
||||||
"$mod, space, exec, walker"
|
"$mod, space, exec, noctalia-shell ipc call launcher toggle"
|
||||||
# rofi (old)
|
# rofi (old)
|
||||||
# "$mod, space, exec, launcher_t2"
|
# "$mod, space, exec, launcher_t2"
|
||||||
|
|
||||||
@@ -267,13 +272,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.hyprpaper = {
|
services.hyprpaper.enable = false;
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
ipc = "on";
|
|
||||||
splash = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.hypridle = {
|
services.hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -281,12 +280,12 @@ in
|
|||||||
general = {
|
general = {
|
||||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
ignore_dbus_inhibit = false;
|
ignore_dbus_inhibit = false;
|
||||||
lock_cmd = "hyprlock";
|
lock_cmd = "noctalia-shell ipc call lockScreen lock";
|
||||||
};
|
};
|
||||||
listener = [
|
listener = [
|
||||||
{
|
{
|
||||||
timeout = 900;
|
timeout = 900;
|
||||||
on-timeout = "hyprlock";
|
on-timeout = "noctalia-shell ipc call lockScreen lock";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
timeout = 1200;
|
timeout = 1200;
|
||||||
@@ -294,7 +293,6 @@ in
|
|||||||
on-resume = "hyprctl dispatch dpms on";
|
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"
|
"https://images.hdqwalls.com/download/starfield-i-mac-ie-2160x3840.jpg"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Create wallpaper rotation script
|
# Wallpaper fetch script - downloads wallpapers to cache
|
||||||
rotateScript = pkgs.writeShellScript "hyprpaper-rotate" ''
|
fetchScript = pkgs.writeShellScript "wallpaper-fetch" ''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# Check if hyprpaper is running
|
HORIZONTAL_DIR="$HOME/.cache/wallpapers/3840x2160"
|
||||||
if ! pgrep -x hyprpaper > /dev/null; then
|
VERTICAL_DIR="$HOME/.cache/wallpapers/2160x3840"
|
||||||
echo "Error: hyprpaper is not running"
|
mkdir -p "$HORIZONTAL_DIR" "$VERTICAL_DIR"
|
||||||
echo "Start it with: hyprpaper &"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
CACHE_DIR="$HOME/.cache/wallpapers"
|
|
||||||
mkdir -p "$CACHE_DIR"
|
|
||||||
|
|
||||||
# Arrays of wallpaper URLs
|
|
||||||
HORIZONTAL=(${builtins.concatStringsSep " " (map (url: ''"${url}"'') horizontal)})
|
HORIZONTAL=(${builtins.concatStringsSep " " (map (url: ''"${url}"'') horizontal)})
|
||||||
VERTICAL=(${builtins.concatStringsSep " " (map (url: ''"${url}"'') vertical)})
|
VERTICAL=(${builtins.concatStringsSep " " (map (url: ''"${url}"'') vertical)})
|
||||||
|
|
||||||
# Function to download wallpaper if not cached
|
download() {
|
||||||
get_wallpaper() {
|
|
||||||
local url="$1"
|
local url="$1"
|
||||||
|
local dir="$2"
|
||||||
local filename=$(basename "$url")
|
local filename=$(basename "$url")
|
||||||
local filepath="$CACHE_DIR/$filename"
|
local filepath="$dir/$filename"
|
||||||
|
|
||||||
if [ ! -f "$filepath" ]; then
|
if [ ! -f "$filepath" ]; then
|
||||||
echo "Downloading $filename..." >&2
|
echo "Downloading $filename..." >&2
|
||||||
@@ -95,81 +88,23 @@ let
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$filepath"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to get random element from array
|
echo "Fetching horizontal wallpapers..."
|
||||||
random_choice() {
|
for url in "''${HORIZONTAL[@]}"; do
|
||||||
local arr=("$@")
|
download "$url" "$HORIZONTAL_DIR"
|
||||||
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
|
|
||||||
done
|
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
|
in
|
||||||
{
|
{
|
||||||
# Export for use in monitors.nix
|
home.file.".local/bin/wallpaper-fetch".source = fetchScript;
|
||||||
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" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,10 +63,8 @@
|
|||||||
"f7>/" = "goto_session";
|
"f7>/" = "goto_session";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Default theme - Catppuccin-Mocha (dark)
|
|
||||||
# This will be overridden by darkman scripts
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
include current-theme.conf
|
include themes/noctalia.conf
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -69,4 +69,6 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
platform = "ipu6ep";
|
platform = "ipu6ep";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.fprintd.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user