mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 04:19:19 -08:00
feat: updates, work on qs
This commit is contained in:
parent
5686454354
commit
4be1b9f090
30 changed files with 773 additions and 74 deletions
15
TODO.md
15
TODO.md
|
|
@ -1,18 +1,31 @@
|
||||||
# To-dos
|
# To-dos
|
||||||
|
|
||||||
- [ ] Make personal homepage o:
|
- [ ] Make personal homepage o:
|
||||||
|
- [ ] Figure out storing bookmarks, lists, data ...
|
||||||
- [ ] Make my own quickshell config
|
- [ ] Make my own quickshell config
|
||||||
|
- [ ] Look into Matrix and Fedi accounts and setting up app(s)
|
||||||
|
- [ ] Test performance for virtual machines on laptop and desktop
|
||||||
|
|
||||||
## New service deployments
|
## New service deployments
|
||||||
|
|
||||||
- [ ] Fauna
|
- [ ] Fauna
|
||||||
|
- [ ] Jellyfin
|
||||||
- [ ] Immich
|
- [ ] Immich
|
||||||
|
- [ ] Prosody
|
||||||
|
- [ ] continuwuation or tuwunnel
|
||||||
|
|
||||||
## Migrations
|
## Migrations
|
||||||
|
|
||||||
- [ ] Move away from flakes to either npins or lon (not that they replied; https://github.com/nikstur/lon/issues/57#issue-3652308987)
|
- [ ] Move away from flakes to either npins or lon (not that they replied; https://github.com/nikstur/lon/issues/57#issue-3652308987)
|
||||||
- [ ] Move to a setup similar to https://notashelf.dev/posts/impermanence - investigate encrypted swap WITH hibernation support
|
- [ ] Move to a setup similar to https://notashelf.dev/posts/impermanence - investigate encrypted swap WITH hibernation support
|
||||||
- [ ] Move away from gmail fully
|
- [ ] Move away from Gmail fully
|
||||||
- [ ] Move away from Discord primarily
|
- [ ] Move away from Discord primarily
|
||||||
|
- [x] Cancel Nitro subscription
|
||||||
|
- [ ] Matrix account(s)
|
||||||
|
- [ ] XMPP
|
||||||
- [ ] Move away from Spotify fully
|
- [ ] Move away from Spotify fully
|
||||||
|
- [ ] Cancel Spotify subscription
|
||||||
- [ ] Move away from Cloudflare for DNS and hosting
|
- [ ] Move away from Cloudflare for DNS and hosting
|
||||||
|
- [ ] Move away from the primary bluesky PDS and appview(?)
|
||||||
|
- [ ] Finish moving away from iPhone
|
||||||
|
- [ ] Cancel iCloud subscription
|
||||||
|
|
|
||||||
141
flake.lock
generated
141
flake.lock
generated
|
|
@ -169,11 +169,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764720660,
|
"lastModified": 1764847736,
|
||||||
"narHash": "sha256-zrU6DwLb5zXCg6JxfVJyNCJex0LjuTUXchotq44Vn+w=",
|
"narHash": "sha256-FMYnfCH2TMNnTJvbc/mraZpRszIL7nc5YI6w/pWNyNs=",
|
||||||
"owner": "chaotic-cx",
|
"owner": "chaotic-cx",
|
||||||
"repo": "nyx",
|
"repo": "nyx",
|
||||||
"rev": "1739cb8049b3184496279dc6a272b56d466ddd58",
|
"rev": "e3f8349d60d5daf58951b9ccd089fecb79ea5443",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -476,6 +476,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-parts_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762040540,
|
||||||
|
"narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "0010412d62a25d959151790968765a70c436598b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-schemas": {
|
"flake-schemas": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721999734,
|
"lastModified": 1721999734,
|
||||||
|
|
@ -983,11 +1001,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764655750,
|
"lastModified": 1764746434,
|
||||||
"narHash": "sha256-tBrcUSu/47u+E+81SUVUpXrqhkcM3Xqg/4taWFI/99k=",
|
"narHash": "sha256-6ymFuw+Z1C90ezf8H0BP3c2JFZhJYwMq31px2StwWHU=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "1127a4fc66425cceae683becb93f038819cf2633",
|
"rev": "b4c0b604148adacf119b89824ed26df8926ce42c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1315,11 +1333,11 @@
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764641206,
|
"lastModified": 1764900011,
|
||||||
"narHash": "sha256-M9GlOr9JKPUJkDb8nsCPr/BF8RAu4pvdXpXdO8wB3uk=",
|
"narHash": "sha256-iG5HqIzZ12qzTi3xCwBinw/PR0xNlJNXLLQyV2En1OY=",
|
||||||
"owner": "fufexan",
|
"owner": "fufexan",
|
||||||
"repo": "nix-gaming",
|
"repo": "nix-gaming",
|
||||||
"rev": "de4835b61bcd48b1ddb93df0c25b2dd4c8b4aefd",
|
"rev": "e1829ce2d33b1e289b3ecca7530dee84da8d9e85",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1489,11 +1507,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764517877,
|
"lastModified": 1764667669,
|
||||||
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
|
"narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
|
"rev": "418468ac9527e799809c900eda37cbff999199b6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1533,6 +1551,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-lib_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761765539,
|
||||||
|
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730741070,
|
"lastModified": 1730741070,
|
||||||
|
|
@ -1627,6 +1660,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761236834,
|
||||||
|
"narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
|
|
@ -1797,7 +1846,52 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"qml-niri": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"quickshell": "quickshell",
|
||||||
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763154417,
|
||||||
|
"narHash": "sha256-EMMGP1HRbEcJ1lD/bx7Hv2938l9A3FjADwXM+pBJA2k=",
|
||||||
|
"owner": "juuyokka",
|
||||||
|
"repo": "qml-niri",
|
||||||
|
"rev": "448f27c815f9af550e595c33a1c40d50ba705159",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "juuyokka",
|
||||||
|
"ref": "feat-nix-flake",
|
||||||
|
"repo": "qml-niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"quickshell": {
|
"quickshell": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"qml-niri",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761897390,
|
||||||
|
"narHash": "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "fc704e6b5d445899a1565955268c91942a4f263f",
|
||||||
|
"revCount": 700,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"quickshell_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
|
@ -1892,7 +1986,8 @@
|
||||||
"norg": "norg",
|
"norg": "norg",
|
||||||
"norg-meta": "norg-meta",
|
"norg-meta": "norg-meta",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"quickshell": "quickshell",
|
"qml-niri": "qml-niri",
|
||||||
|
"quickshell": "quickshell_2",
|
||||||
"rbw-bitw": "rbw-bitw",
|
"rbw-bitw": "rbw-bitw",
|
||||||
"rust": "rust",
|
"rust": "rust",
|
||||||
"rust-overlay": "rust-overlay",
|
"rust-overlay": "rust-overlay",
|
||||||
|
|
@ -1907,7 +2002,7 @@
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
"systems": "systems_4",
|
"systems": "systems_4",
|
||||||
"tree": "tree",
|
"tree": "tree",
|
||||||
"treefmt-nix": "treefmt-nix_2",
|
"treefmt-nix": "treefmt-nix_3",
|
||||||
"ucodenix": "ucodenix",
|
"ucodenix": "ucodenix",
|
||||||
"wezterm": "wezterm"
|
"wezterm": "wezterm"
|
||||||
}
|
}
|
||||||
|
|
@ -2427,6 +2522,24 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix_2": {
|
"treefmt-nix_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762410071,
|
||||||
|
"narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "97a30861b13c3731a84e09405414398fbf3e109f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,10 @@
|
||||||
#url = "github:nixos/nixpkgs/nixos-unstable";
|
#url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
#inputs.nixpkgs.follows = "chaotic/nixpkgs";
|
#inputs.nixpkgs.follows = "chaotic/nixpkgs";
|
||||||
};
|
};
|
||||||
|
qml-niri = {
|
||||||
|
url = "github:juuyokka/qml-niri/feat-nix-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
clipboard-sync = {
|
clipboard-sync = {
|
||||||
url = "github:dnut/clipboard-sync";
|
url = "github:dnut/clipboard-sync";
|
||||||
inputs = {
|
inputs = {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,16 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.meta) getExe;
|
inherit (lib.meta) getExe;
|
||||||
in {
|
in {
|
||||||
|
home.packages = [
|
||||||
|
pkgs.quickshell
|
||||||
|
inputs.qml-niri.packages.${pkgs.system}.default
|
||||||
|
];
|
||||||
programs.noctalia-shell = {
|
programs.noctalia-shell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{nur, ...}: {
|
{nur, ...}: {
|
||||||
programs.librewolf.profiles.main.extensions = {
|
programs.librewolf.profiles.main.extensions = {
|
||||||
packages = with nur.repos.rycee.firefox-addons; [
|
packages = with nur.repos.rycee.firefox-addons; [
|
||||||
adnauseum
|
adnauseam
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
_: {
|
|
||||||
services.pipewire.lowLatency = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
platformOptimizations.enable = true;
|
|
||||||
extraCompatPackages = [
|
extraCompatPackages = [
|
||||||
inputs.chaotic.packages.${pkgs.system}.proton-cachyos_x86_64_v3
|
inputs.chaotic.packages.${pkgs.system}.proton-cachyos_x86_64_v3
|
||||||
inputs.chaotic.packages.${pkgs.system}.proton-ge-custom
|
inputs.chaotic.packages.${pkgs.system}.proton-ge-custom
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ in {
|
||||||
PROTON_EXPERIMENTAL = "/games/Steam Library/steamapps/common/Proton - Experimental";
|
PROTON_EXPERIMENTAL = "/games/Steam Library/steamapps/common/Proton - Experimental";
|
||||||
PROTON_HOTFIX = "/games/Steam Library/steamapps/common/Proton Hotfix/";
|
PROTON_HOTFIX = "/games/Steam Library/steamapps/common/Proton Hotfix/";
|
||||||
PROTON_VRC = "/home/kat/.local/share/Steam/compatibilitytools.d/GE-Proton10-20-rtsp19/";
|
PROTON_VRC = "/home/kat/.local/share/Steam/compatibilitytools.d/GE-Proton10-20-rtsp19/";
|
||||||
WINE_TKG = pkgs.wine-tkg;
|
WINE_TKG = inputs.nix-gaming.packages.${pkgs.system}.wine-tkg;
|
||||||
WINE_CACHYOS = pkgs.wine-cachyos;
|
WINE_CACHYOS = inputs.nix-gaming.packages.${pkgs.system}.wine-cachyos;
|
||||||
};
|
};
|
||||||
pathPackages = with pkgs; [
|
pathPackages = with pkgs; [
|
||||||
mangohud
|
mangohud
|
||||||
|
|
@ -347,9 +347,11 @@ in {
|
||||||
home-manager.users.kat.home.file = let
|
home-manager.users.kat.home.file = let
|
||||||
inherit (lib.attrsets) listToAttrs nameValuePair attrNames;
|
inherit (lib.attrsets) listToAttrs nameValuePair attrNames;
|
||||||
inherit (lib.lists) concatMap;
|
inherit (lib.lists) concatMap;
|
||||||
dxvks = {
|
dxvks = let
|
||||||
"x64" = pkgs.dxvk-w32;
|
gaming = inputs.nix-gaming.packages.${pkgs.system};
|
||||||
"x32" = pkgs.dxvk-w64;
|
in {
|
||||||
|
"x64" = gaming.dxvk-w32;
|
||||||
|
"x32" = gaming.dxvk-w64;
|
||||||
};
|
};
|
||||||
pfxes = [
|
pfxes = [
|
||||||
"Games/VNs/drive_c/windows"
|
"Games/VNs/drive_c/windows"
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,21 @@ in {
|
||||||
"default.clock.min-quantum" = ll_quant_int;
|
"default.clock.min-quantum" = ll_quant_int;
|
||||||
"default.clock.max-quantum" = hl_quant_int;
|
"default.clock.max-quantum" = hl_quant_int;
|
||||||
};
|
};
|
||||||
|
"context.modules" = [
|
||||||
|
{
|
||||||
|
name = "libpipewire-module-rt";
|
||||||
|
flags = [
|
||||||
|
"ifexists"
|
||||||
|
"nofail"
|
||||||
|
];
|
||||||
|
args = {
|
||||||
|
"nice.level" = -15;
|
||||||
|
"rt.prio" = 88;
|
||||||
|
"rt.time.soft" = 200000;
|
||||||
|
"rt.time.hard" = 200000;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
pipewire-pulse = {
|
pipewire-pulse = {
|
||||||
"91-discord-latency" = {
|
"91-discord-latency" = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
boot.zfs.package = pkgs.zfs_cachyos;
|
#boot.zfs.package = pkgs.zfs_cachyos;
|
||||||
boot.kernelPackages = pkgs.linuxPackages_cachyos;
|
#boot.kernelPackages = pkgs.linuxPackages_cachyos;
|
||||||
|
boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
};
|
};
|
||||||
networking.firewall.interfaces."podman*".allowedUDPPorts = [53];
|
networking.firewall.interfaces."podman*".allowedUDPPorts = [53];
|
||||||
services.gitea-actions-runner = {
|
services.gitea-actions-runner = {
|
||||||
package = pkgs.forgejo-actions-runner;
|
package = pkgs.forgejo-runner;
|
||||||
instances.default = {
|
instances.default = {
|
||||||
enable = true;
|
enable = true;
|
||||||
name = config.networking.hostName;
|
name = config.networking.hostName;
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,9 @@ in {
|
||||||
(genAttrs serversToGen (_: baseServer))
|
(genAttrs serversToGen (_: baseServer))
|
||||||
(genAttrs disabledPackageServers (_: disablePackage))
|
(genAttrs disabledPackageServers (_: disablePackage))
|
||||||
{
|
{
|
||||||
|
qmlls.config = {
|
||||||
|
cmd = "-E";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
plugins = let
|
plugins = let
|
||||||
|
|
@ -65,7 +68,6 @@ in {
|
||||||
bash
|
bash
|
||||||
json
|
json
|
||||||
make
|
make
|
||||||
qml
|
|
||||||
markdown
|
markdown
|
||||||
regex
|
regex
|
||||||
toml
|
toml
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,6 @@
|
||||||
inputs.darwin.overlays.default
|
inputs.darwin.overlays.default
|
||||||
inputs.deploy-rs.overlays.default
|
inputs.deploy-rs.overlays.default
|
||||||
inputs.neorg-overlay.overlays.default
|
inputs.neorg-overlay.overlays.default
|
||||||
inputs.nix-gaming.overlays.default
|
|
||||||
inputs.niri.overlays.niri
|
inputs.niri.overlays.niri
|
||||||
(import tree.packages.default {inherit inputs tree;})
|
(import tree.packages.default {inherit inputs tree;})
|
||||||
(_final: prev: {
|
(_final: prev: {
|
||||||
|
|
|
||||||
12
quickshell/Components/Clock.qml
Normal file
12
quickshell/Components/Clock.qml
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import "root:/DataSources"
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: clock
|
||||||
|
font.pointSize: 13
|
||||||
|
color: Settings.variable
|
||||||
|
Layout.alignment: Qt.AlignCenter
|
||||||
|
|
||||||
|
text: Time.time
|
||||||
|
}
|
||||||
11
quickshell/Components/DistroIcon.qml
Normal file
11
quickshell/Components/DistroIcon.qml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
import Quickshell
|
||||||
|
import QtQuick
|
||||||
|
import "root:/Helpers"
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: root
|
||||||
|
source: ThemeIcons.iconFromName("nix-snowflake", "")
|
||||||
|
sourceSize.width: 24
|
||||||
|
sourceSize.height: 24
|
||||||
|
visible: true
|
||||||
|
}
|
||||||
49
quickshell/Components/FocusedWindow.qml
Normal file
49
quickshell/Components/FocusedWindow.qml
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import Niri 0.1
|
||||||
|
import "root:/DataSources"
|
||||||
|
import "root:/Helpers"
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
id: root
|
||||||
|
property string title: get_text()
|
||||||
|
property string icon_path: get_icon()
|
||||||
|
property string app_id: get_app_id()
|
||||||
|
|
||||||
|
function get_app_id() {
|
||||||
|
var app_id = niri.focusedWindow?.appId;
|
||||||
|
return app_id
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_text() {
|
||||||
|
var full_title = niri.focusedWindow?.title ?? "";
|
||||||
|
var shortened_title = full_title.substring(0, 20);
|
||||||
|
if (full_title.length > 20) {
|
||||||
|
shortened_title += "…"
|
||||||
|
}
|
||||||
|
return shortened_title
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_icon() {
|
||||||
|
var icon = ThemeIcons.iconForAppId(app_id);
|
||||||
|
if (icon && icon !== "") {
|
||||||
|
return icon
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spacing: 10
|
||||||
|
|
||||||
|
Image {
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
source: icon_path
|
||||||
|
visible: title != ""
|
||||||
|
sourceSize.width: 24
|
||||||
|
sourceSize.height: 24
|
||||||
|
smooth: true
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
text: title
|
||||||
|
color: Settings.defaultFg
|
||||||
|
}
|
||||||
|
}
|
||||||
126
quickshell/Components/SystemTray.qml
Normal file
126
quickshell/Components/SystemTray.qml
Normal file
|
|
@ -0,0 +1,126 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import QtQuick.Controls
|
||||||
|
import Quickshell.Widgets
|
||||||
|
import Quickshell.Services.SystemTray
|
||||||
|
import "root:/DataSources"
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
id: systray
|
||||||
|
|
||||||
|
Layout.alignment: Qt.AlignCenter
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: SystemTray.items
|
||||||
|
|
||||||
|
delegate: Item {
|
||||||
|
id: delagate
|
||||||
|
required property SystemTrayItem modelData
|
||||||
|
property var openItem
|
||||||
|
|
||||||
|
width: 24
|
||||||
|
height: 24
|
||||||
|
|
||||||
|
IconImage {
|
||||||
|
source: modelData.icon
|
||||||
|
width: 20
|
||||||
|
height: 20
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
|
||||||
|
onClicked: popupLoader.item.visible = !popupLoader.item.visible
|
||||||
|
}
|
||||||
|
|
||||||
|
QsMenuOpener {
|
||||||
|
id: menu
|
||||||
|
menu: modelData.menu
|
||||||
|
}
|
||||||
|
|
||||||
|
LazyLoader {
|
||||||
|
id: popupLoader
|
||||||
|
|
||||||
|
loading: true
|
||||||
|
|
||||||
|
PopupWindow {
|
||||||
|
id: popup
|
||||||
|
anchor.window: delagate.QsWindow.window
|
||||||
|
anchor.rect.x: parentWindow.width * 1.15
|
||||||
|
anchor.rect.y: parentWindow.height / 1.25
|
||||||
|
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
implicitWidth: 200
|
||||||
|
implicitHeight: 200
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
color: Settings.colors.background
|
||||||
|
radius: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
ListView {
|
||||||
|
model: menu.children
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
topMargin: 5
|
||||||
|
bottom: parent.bottom
|
||||||
|
bottomMargin: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
width: parent.width
|
||||||
|
height: parent.height
|
||||||
|
spacing: 5
|
||||||
|
|
||||||
|
ScrollBar.horizontal: ScrollBar {}
|
||||||
|
|
||||||
|
delegate: Item {
|
||||||
|
required property QsMenuHandle modelData
|
||||||
|
|
||||||
|
width: parent.width
|
||||||
|
height: 40
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors {
|
||||||
|
fill: parent
|
||||||
|
leftMargin: 5
|
||||||
|
rightMargin: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
color: Settings.colors.backgroundLighter
|
||||||
|
radius: 5
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: modelData.text
|
||||||
|
color: Settings.colors.foreground
|
||||||
|
font.pointSize: 12
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
|
||||||
|
onClicked: mouse => {
|
||||||
|
modelData.triggered();
|
||||||
|
// TODO: moar
|
||||||
|
var idx = ObjectModel.indexOf(modelData);
|
||||||
|
if (openItem && openItem.idx != idx) {
|
||||||
|
|
||||||
|
}
|
||||||
|
popup.visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
70
quickshell/Components/WorkspaceButton.qml
Normal file
70
quickshell/Components/WorkspaceButton.qml
Normal file
|
|
@ -0,0 +1,70 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import "root:/DataSources"
|
||||||
|
|
||||||
|
Item {
|
||||||
|
property var modelData
|
||||||
|
property var screenData
|
||||||
|
|
||||||
|
property int index: modelData.index
|
||||||
|
property string name: modelData.name
|
||||||
|
property string generated_name: gen_text()
|
||||||
|
property bool isVisible: modelData.output == screenData.name
|
||||||
|
|
||||||
|
id: root
|
||||||
|
|
||||||
|
function gen_text() {
|
||||||
|
if (name.length == 0) {
|
||||||
|
return index
|
||||||
|
} else {
|
||||||
|
return name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function gen_width() {
|
||||||
|
if (isVisible) {
|
||||||
|
return 10 + (generated_name.length * 15)
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_color() {
|
||||||
|
if (modelData.isUrgent) {
|
||||||
|
return Settings.base0F
|
||||||
|
}
|
||||||
|
if (modelData.isFocused) {
|
||||||
|
return Settings.base0E
|
||||||
|
}
|
||||||
|
if (modelData.isActive) {
|
||||||
|
return Settings.base0C
|
||||||
|
}
|
||||||
|
if (modelData.activeWindowId > 0) {
|
||||||
|
return Settings.base0F
|
||||||
|
}
|
||||||
|
return Settings.lighterBg
|
||||||
|
}
|
||||||
|
|
||||||
|
visible: isVisible
|
||||||
|
implicitHeight: 25
|
||||||
|
implicitWidth: gen_width()
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
color: get_color()
|
||||||
|
radius: 5
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
color: Settings.defaultBg
|
||||||
|
text: gen_text()
|
||||||
|
font.pixelSize: 20
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
onClicked: niri.focusWorkspaceById(modelData.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
24
quickshell/Components/Workspaces.qml
Normal file
24
quickshell/Components/Workspaces.qml
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import "root:/DataSources"
|
||||||
|
import "root:/Components"
|
||||||
|
import Niri 0.1
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
id: root
|
||||||
|
property var screen
|
||||||
|
spacing: 10
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: niri.workspaces
|
||||||
|
|
||||||
|
WorkspaceButton {
|
||||||
|
modelData: model
|
||||||
|
screenData: screen
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
97
quickshell/DataSources/Settings.qml
Normal file
97
quickshell/DataSources/Settings.qml
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
id: root
|
||||||
|
readonly property Scheme scheme: Scheme {}
|
||||||
|
|
||||||
|
readonly property color base00: scheme.base00
|
||||||
|
readonly property color base01: scheme.base01
|
||||||
|
readonly property color base02: scheme.base02
|
||||||
|
readonly property color base03: scheme.base03
|
||||||
|
readonly property color base04: scheme.base04
|
||||||
|
readonly property color base05: scheme.base05
|
||||||
|
readonly property color base06: scheme.base06
|
||||||
|
readonly property color base07: scheme.base07
|
||||||
|
readonly property color base08: scheme.base08
|
||||||
|
readonly property color base09: scheme.base09
|
||||||
|
readonly property color base0A: scheme.base0A
|
||||||
|
readonly property color base0B: scheme.base0B
|
||||||
|
readonly property color base0C: scheme.base0C
|
||||||
|
readonly property color base0D: scheme.base0D
|
||||||
|
readonly property color base0E: scheme.base0E
|
||||||
|
readonly property color base0F: scheme.base0F
|
||||||
|
readonly property color defaultBg: scheme.defaultBg
|
||||||
|
readonly property color lighterBg: scheme.lighterBg
|
||||||
|
readonly property color selectionBg: scheme.selectionBg
|
||||||
|
readonly property color comments: scheme.comments
|
||||||
|
readonly property color darkFg: scheme.darkFg
|
||||||
|
readonly property color defaultFg: scheme.defaultFg
|
||||||
|
readonly property color lightFg: scheme.lightFg
|
||||||
|
readonly property color lightBg: scheme.lightBg
|
||||||
|
readonly property color variable: scheme.variable
|
||||||
|
readonly property color integer: scheme.integer
|
||||||
|
readonly property color classy: scheme.classy
|
||||||
|
readonly property color stringy: scheme.stringy
|
||||||
|
readonly property color support: scheme.support
|
||||||
|
readonly property color functiony: scheme.functiony
|
||||||
|
readonly property color keyword: scheme.keyword
|
||||||
|
readonly property color deprecated: scheme.deprecated
|
||||||
|
|
||||||
|
function load(data: string): void {
|
||||||
|
const colours = scheme;
|
||||||
|
const scheme_json = JSON.parse(data);
|
||||||
|
|
||||||
|
for (const [name, colour] of Object.entries(scheme_json)) {
|
||||||
|
colours[name] = colour
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FileView {
|
||||||
|
path: "./stylix.json"
|
||||||
|
blockLoading: true
|
||||||
|
watchChanges: true
|
||||||
|
onFileChanged: reload()
|
||||||
|
onLoaded: root.load(text(), false)
|
||||||
|
}
|
||||||
|
component Scheme: QtObject {
|
||||||
|
property string author: ""
|
||||||
|
property string scheme: ""
|
||||||
|
property string slug: ""
|
||||||
|
property color base00: "#000000"
|
||||||
|
property color base01: "#000000"
|
||||||
|
property color base02: "#000000"
|
||||||
|
property color base03: "#000000"
|
||||||
|
property color base04: "#000000"
|
||||||
|
property color base05: "#000000"
|
||||||
|
property color base06: "#000000"
|
||||||
|
property color base07: "#000000"
|
||||||
|
property color base08: "#000000"
|
||||||
|
property color base09: "#000000"
|
||||||
|
property color base0A: "#000000"
|
||||||
|
property color base0B: "#000000"
|
||||||
|
property color base0C: "#000000"
|
||||||
|
property color base0D: "#000000"
|
||||||
|
property color base0E: "#000000"
|
||||||
|
property color base0F: "#000000"
|
||||||
|
property color defaultBg: "#000000"
|
||||||
|
property color lighterBg: "#000000"
|
||||||
|
property color selectionBg: "#000000"
|
||||||
|
property color comments: "#000000"
|
||||||
|
property color darkFg: "#000000"
|
||||||
|
property color defaultFg: "#000000"
|
||||||
|
property color lightFg: "#000000"
|
||||||
|
property color lightBg: "#000000"
|
||||||
|
property color variable: "#000000"
|
||||||
|
property color integer: "#000000"
|
||||||
|
property color classy: "#000000"
|
||||||
|
property color stringy: "#000000"
|
||||||
|
property color support: "#000000"
|
||||||
|
property color functiony: "#000000"
|
||||||
|
property color keyword: "#000000"
|
||||||
|
property color deprecated: "#000000"
|
||||||
|
}
|
||||||
|
}
|
||||||
16
quickshell/DataSources/Time.qml
Normal file
16
quickshell/DataSources/Time.qml
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import Quickshell
|
||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
id: root
|
||||||
|
readonly property string time: {
|
||||||
|
Qt.formatDateTime(clock.date, "yyyy-MM-dd hh:mm:ss t")
|
||||||
|
}
|
||||||
|
|
||||||
|
SystemClock {
|
||||||
|
id: clock
|
||||||
|
precision: SystemClock.Seconds
|
||||||
|
}
|
||||||
|
}
|
||||||
53
quickshell/Helpers/ThemeIcons.qml
Normal file
53
quickshell/Helpers/ThemeIcons.qml
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
// https://github.com/noctalia-dev/noctalia-shell/blob/main/Commons/ThemeIcons.qml
|
||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
function iconFromName(iconName, fallbackName) {
|
||||||
|
const fallback = fallbackName || "application-x-executable";
|
||||||
|
try {
|
||||||
|
if (iconName && typeof Quickshell !== 'undefined' && Quickshell.iconPath) {
|
||||||
|
const p = Quickshell.iconPath(iconName, fallback);
|
||||||
|
if (p && p !== "")
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
} catch (e)
|
||||||
|
|
||||||
|
// ignore and fall back
|
||||||
|
{}
|
||||||
|
try {
|
||||||
|
return Quickshell.iconPath ? (Quickshell.iconPath(fallback, true) || "") : "";
|
||||||
|
} catch (e2) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Resolve icon path for a DesktopEntries appId - safe on missing entries
|
||||||
|
function iconForAppId(appId, fallbackName) {
|
||||||
|
const fallback = fallbackName || "application-x-executable";
|
||||||
|
if (!appId)
|
||||||
|
return iconFromName(fallback, fallback);
|
||||||
|
try {
|
||||||
|
if (typeof DesktopEntries === 'undefined' || !DesktopEntries.byId)
|
||||||
|
return iconFromName(fallback, fallback);
|
||||||
|
const entry = (DesktopEntries.heuristicLookup) ? DesktopEntries.heuristicLookup(appId) : DesktopEntries.byId(appId);
|
||||||
|
const name = entry && entry.icon ? entry.icon : "";
|
||||||
|
return iconFromName(name || fallback, fallback);
|
||||||
|
} catch (e) {
|
||||||
|
return iconFromName(fallback, fallback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Distro logo helper (absolute path or empty string)
|
||||||
|
function distroLogoPath() {
|
||||||
|
try {
|
||||||
|
return (typeof OSInfo !== 'undefined' && OSInfo.distroIconPath) ? OSInfo.distroIconPath : "";
|
||||||
|
} catch (e) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
80
quickshell/Modules/Bar.qml
Normal file
80
quickshell/Modules/Bar.qml
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import QtQuick.Controls
|
||||||
|
import "root:/DataSources"
|
||||||
|
import "root:/Components"
|
||||||
|
|
||||||
|
Scope {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
Variants {
|
||||||
|
model: Quickshell.screens
|
||||||
|
|
||||||
|
PanelWindow {
|
||||||
|
property var modelData
|
||||||
|
screen: modelData
|
||||||
|
implicitHeight: 40
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: true
|
||||||
|
left: true
|
||||||
|
right: true
|
||||||
|
}
|
||||||
|
|
||||||
|
margins {
|
||||||
|
left: 4
|
||||||
|
right: 4
|
||||||
|
top: 4
|
||||||
|
bottom: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: bar
|
||||||
|
anchors.fill: parent
|
||||||
|
radius: 10
|
||||||
|
color: Settings.defaultBg
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
top: parent.top
|
||||||
|
bottom: parent.bottom
|
||||||
|
|
||||||
|
leftMargin: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
spacing: 15
|
||||||
|
|
||||||
|
Workspaces {
|
||||||
|
screen: modelData
|
||||||
|
}
|
||||||
|
FocusedWindow {}
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
spacing: 20
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
bottom: parent.bottom
|
||||||
|
right: parent.right
|
||||||
|
|
||||||
|
rightMargin: 15
|
||||||
|
}
|
||||||
|
|
||||||
|
spacing: 15
|
||||||
|
|
||||||
|
SystemTray {}
|
||||||
|
Clock {}
|
||||||
|
DistroIcon {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
31
quickshell/expr.nix
Normal file
31
quickshell/expr.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{hostname}: let
|
||||||
|
nixfiles = import ../.;
|
||||||
|
inherit (nixfiles) lib nixosConfigurations;
|
||||||
|
palette' = nixosConfigurations.${hostname}.config.stylix.generated.palette;
|
||||||
|
palette = lib.mapAttrs (k: v:
|
||||||
|
if (lib.strings.hasPrefix "base" k)
|
||||||
|
then "#${lib.strings.toUpper v}"
|
||||||
|
else v)
|
||||||
|
palette';
|
||||||
|
paletteWithAliases = palette: {
|
||||||
|
defaultBg = palette.base00;
|
||||||
|
lighterBg = palette.base01;
|
||||||
|
selectionBg = palette.base02;
|
||||||
|
comments = palette.base03;
|
||||||
|
darkFg = palette.base04;
|
||||||
|
defaultFg = palette.base05;
|
||||||
|
lightFg = palette.base06;
|
||||||
|
lightBg = palette.base07;
|
||||||
|
variable = palette.base08;
|
||||||
|
integer = palette.base09;
|
||||||
|
classy = palette.base0A;
|
||||||
|
stringy = palette.base0B;
|
||||||
|
support = palette.base0C;
|
||||||
|
functiony = palette.base0D;
|
||||||
|
keyword = palette.base0E;
|
||||||
|
deprecated = palette.base0F;
|
||||||
|
};
|
||||||
|
fullPalette = palette // (paletteWithAliases palette);
|
||||||
|
in {
|
||||||
|
expr = fullPalette;
|
||||||
|
}
|
||||||
|
|
@ -1,48 +1,22 @@
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import QtQuick
|
import QtQuick
|
||||||
|
import Niri 0.1
|
||||||
|
|
||||||
Scope {
|
import "root:/Modules"
|
||||||
id: root
|
|
||||||
property string time
|
|
||||||
|
|
||||||
Variants {
|
ShellRoot{
|
||||||
model: Quickshell.screens
|
id: root
|
||||||
|
|
||||||
PanelWindow {
|
Niri {
|
||||||
required property var modelData
|
id: niri
|
||||||
screen: modelData
|
Component.onCompleted: connect()
|
||||||
|
|
||||||
anchors {
|
onConnected: console.info("Connected to niri")
|
||||||
top: true
|
onErrorOccurred: function(error) {
|
||||||
left: true
|
console.error("Niri error:", error)
|
||||||
right: true
|
}
|
||||||
}
|
|
||||||
|
|
||||||
implicitHeight: 30
|
|
||||||
|
|
||||||
Text {
|
|
||||||
font.family: "M+2 Nerd Font Regular"
|
|
||||||
anchors.centerIn: parent
|
|
||||||
text: root.time
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Process {
|
LazyLoader{ active: true; component: Bar{} }
|
||||||
id: dateProc
|
|
||||||
command: ["date", "+%F %T %Z"]
|
|
||||||
running: true
|
|
||||||
|
|
||||||
stdout: StdioCollector {
|
|
||||||
onStreamFinished: root.time = this.text
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
interval: 1000
|
|
||||||
running: true
|
|
||||||
repeat: true
|
|
||||||
onTriggered: dateProc.running = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1
quickshell/stylix.json
Normal file
1
quickshell/stylix.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"author":"Stylix","base00":"#191A2D","base01":"#4F415B","base02":"#6363AC","base03":"#A39AB2","base04":"#B1B8D5","base05":"#D5CEEB","base06":"#D8CCEA","base07":"#D8CDEA","base08":"#7D8CC9","base09":"#908EAB","base0A":"#9B8AA9","base0B":"#948BB5","base0C":"#8391B0","base0D":"#6693D8","base0E":"#9C85CC","base0F":"#AB83A0","classy":"#9B8AA9","comments":"#A39AB2","darkFg":"#B1B8D5","defaultBg":"#191A2D","defaultFg":"#D5CEEB","deprecated":"#AB83A0","functiony":"#6693D8","integer":"#908EAB","keyword":"#9C85CC","lightBg":"#D8CDEA","lightFg":"#D8CCEA","lighterBg":"#4F415B","scheme":"Stylix","selectionBg":"#6363AC","slug":"stylix","stringy":"#948BB5","support":"#8391B0","variable":"#7D8CC9"}
|
||||||
3
quickshell/stylix.sh
Executable file
3
quickshell/stylix.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
HOST=$(hostname -s)
|
||||||
|
nix eval --argstr hostname "$HOST" -f expr.nix --json expr > ./stylix.json
|
||||||
|
|
@ -137,6 +137,11 @@ _: let
|
||||||
x = 1920;
|
x = 1920;
|
||||||
y = 0;
|
y = 0;
|
||||||
};
|
};
|
||||||
|
mode = {
|
||||||
|
width = 2560;
|
||||||
|
height = 1440;
|
||||||
|
refresh = 59.951;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
"Samsung Electric Company SAMSUNG Unknown" = {
|
"Samsung Electric Company SAMSUNG Unknown" = {
|
||||||
position = {
|
position = {
|
||||||
|
|
|
||||||
|
|
@ -53,14 +53,14 @@ _: let
|
||||||
ipv6.addresses = [
|
ipv6.addresses = [
|
||||||
{
|
{
|
||||||
address = "2602:ffd5:1:301::1a";
|
address = "2602:ffd5:1:301::1a";
|
||||||
prefixLength = 64;
|
prefixLength = 36;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
defaultGateway = "154.12.117.33";
|
defaultGateway = "154.12.117.33";
|
||||||
defaultGateway6 = {
|
defaultGateway6 = {
|
||||||
address = "2602:ffd5:1:100::1";
|
address = "2602:ffd5:1:100::1";
|
||||||
interface = "ens18";
|
interface = "ens19";
|
||||||
};
|
};
|
||||||
nameservers = [
|
nameservers = [
|
||||||
"1.1.1.1"
|
"1.1.1.1"
|
||||||
|
|
|
||||||
2
tree.nix
2
tree.nix
|
|
@ -93,8 +93,6 @@
|
||||||
chaotic.nixosModules.default
|
chaotic.nixosModules.default
|
||||||
nixpkgs-xr.nixosModules.nixpkgs-xr
|
nixpkgs-xr.nixosModules.nixpkgs-xr
|
||||||
spicetify-nix.nixosModules.spicetify
|
spicetify-nix.nixosModules.spicetify
|
||||||
nix-gaming.nixosModules.pipewireLowLatency
|
|
||||||
nix-gaming.nixosModules.platformOptimizations
|
|
||||||
clipboard-sync.nixosModules.default
|
clipboard-sync.nixosModules.default
|
||||||
nixos-cli.nixosModules.nixos-cli
|
nixos-cli.nixosModules.nixos-cli
|
||||||
stylix.nixosModules.stylix
|
stylix.nixosModules.stylix
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue