Compare commits
24 commits
master
...
bootstrap/
| Author | SHA1 | Date | |
|---|---|---|---|
| d908b35023 | |||
| b26de7e19a | |||
| fefbc964cd | |||
| 8b45b42254 | |||
| 2a1e0f6d7e | |||
| d0e6b9b715 | |||
| 8fbe93c703 | |||
| 59a27fd2b6 | |||
| 9223a71650 | |||
| 74d7cb64b8 | |||
| 1a2f9e8094 | |||
| e1e28a4b2f | |||
| d149a7704b | |||
| 4667653ed1 | |||
| fd126721cf | |||
|
|
6567a561e3 | ||
|
|
0e4b6b3064 | ||
|
|
015f72777b | ||
|
|
21e2790580 | ||
|
|
d1688ad0d9 | ||
|
|
4edcad74e4 | ||
|
|
adde051c61 | ||
|
|
0f75981120 | ||
|
|
9272749b6f |
30 changed files with 261 additions and 166 deletions
12
flake.lock
generated
12
flake.lock
generated
|
|
@ -326,11 +326,11 @@
|
|||
"linux-tkg": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1702296374,
|
||||
"narHash": "sha256-KYZFl0LVZ4FXXi2T6J5ELWWAhRO+CUrlditEv9fMCGc=",
|
||||
"lastModified": 1704890137,
|
||||
"narHash": "sha256-uh1ielVK71BP/MYK85KA8B8DBltFPF4oEeHXyKcMqyY=",
|
||||
"owner": "Frogging-Family",
|
||||
"repo": "linux-tkg",
|
||||
"rev": "112adb9e50485de74c371d6efa93fb6c32a5a976",
|
||||
"rev": "80fdc82a9a76b81d9fcc4a321566f285fb956e76",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -510,11 +510,11 @@
|
|||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1702312524,
|
||||
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
|
||||
"lastModified": 1705133751,
|
||||
"narHash": "sha256-rCIsyE80jgiOU78gCWN3A0wE0tR2GI5nH6MlS+HaaSQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
|
||||
"rev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@
|
|||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations."anemone" = mkSystem nixpkgs "anemone" "x86_64-linux" true [];
|
||||
nixosConfigurations."blossom" = mkSystem nixpkgs "blossom" "x86_64-linux" true [];
|
||||
nixosConfigurations."hyacinth" = mkSystem nixpkgs "hyacinth" "x86_64-linux" true [];
|
||||
|
||||
|
|
|
|||
71
hosts/anemone/default.nix
Normal file
71
hosts/anemone/default.nix
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
{ config, inputs, modules, overlays, pkgs, ... }: {
|
||||
networking.hostName = "anemone";
|
||||
system.stateVersion = "23.11";
|
||||
time.timeZone = "Asia/Phnom_Penh";
|
||||
|
||||
nixpkgs.overlays = [ inputs.neovim-nightly.overlay ];
|
||||
age.secrets = {
|
||||
passwd.file = ../../secrets/passwd.age;
|
||||
#wg_hyacinth.file = ../../secrets/wg_blossom.age;
|
||||
#wpa_conf.file = ../../secrets/wpa_conf.age;
|
||||
};
|
||||
|
||||
imports = with modules.system; [
|
||||
inputs.home-manager.nixosModule
|
||||
home-manager
|
||||
|
||||
audio
|
||||
base
|
||||
ccache
|
||||
corectrl
|
||||
flatpak
|
||||
greetd
|
||||
gui
|
||||
input
|
||||
kernel
|
||||
nix
|
||||
packages
|
||||
printing
|
||||
security
|
||||
snapper
|
||||
#wireguard
|
||||
|
||||
./filesystem.nix
|
||||
./kernel.nix
|
||||
./networking.nix
|
||||
|
||||
../../users/rin
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [ wpa_supplicant_gui ];
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
|
||||
hardware.firmware = let
|
||||
fw = "${pkgs.linux-firmware}/lib/firmware/cirrus/";
|
||||
in [
|
||||
(
|
||||
pkgs.runCommandNoCC "cs35l41-10431683" { } ''
|
||||
mkdir -p $out/lib/firmware/cirrus
|
||||
cd $out/lib/firmware/cirrus
|
||||
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-cali-10431683-spkid0-l0.bin
|
||||
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-cali-10431683-spkid0-r0.bin
|
||||
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-cali-10431683-spkid1-l0.bin
|
||||
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-cali-10431683-spkid1-r0.bin
|
||||
|
||||
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid0-l0.bin
|
||||
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid0-r0.bin
|
||||
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid1-l0.bin
|
||||
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin cs35l41-dsp1-spk-prot-10431683-spkid1-r0.bin
|
||||
|
||||
cp ${fw}/cs35l41-dsp1-spk-cali-10431e12.wmfw cs35l41-dsp1-spk-cali-10431683.wmfw
|
||||
cp ${fw}/cs35l41-dsp1-spk-prot-10431e12.wmfw cs35l41-dsp1-spk-prot-10431683.wmfw
|
||||
''
|
||||
)
|
||||
];
|
||||
|
||||
# For steam fhs-env
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"openssl-1.1.1w"
|
||||
];
|
||||
}
|
||||
36
hosts/anemone/filesystem.nix
Normal file
36
hosts/anemone/filesystem.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
mkLabelMount = label: type: {
|
||||
device = "/dev/disk/by-label/${label}";
|
||||
fsType = type;
|
||||
options = [ "defaults" "relatime" ];
|
||||
};
|
||||
mkBtrfsMount = name: subvol: atime: mkLabelMount name "btrfs" // {
|
||||
options = [ "autodefrag" "compress=zstd:3" "defaults" "discard=async" "space_cache=v2" "ssd" "subvol=${subvol}" (if atime then "relatime" else "noatime") ];
|
||||
};
|
||||
submount = mkBtrfsMount "Anemone";
|
||||
in
|
||||
{
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "rootfs";
|
||||
fsType = "tmpfs";
|
||||
options = [ "defaults" "size=8G" "mode=755" ];
|
||||
};
|
||||
"/boot" = mkLabelMount "SYSTEM" "vfat";
|
||||
|
||||
"/mnt/butter" = submount "/" true;
|
||||
"/nix" = submount "/current/snow" false;
|
||||
"/home" = submount "/current/home" true;
|
||||
"/home/.snapshots" = submount "/snapshot/home" false;
|
||||
"/root" = submount "/current/root" false;
|
||||
"/var" = submount "/current/var" false;
|
||||
"/persist" = {
|
||||
depends = [ "/var" ];
|
||||
device = "/var/persist";
|
||||
fsType = "none";
|
||||
options = [ "bind" ];
|
||||
neededForBoot = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
14
hosts/anemone/kernel.nix
Normal file
14
hosts/anemone/kernel.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ config, lib, pkgs, ... }: {
|
||||
boot = {
|
||||
loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
systemd-boot.enable = true;
|
||||
};
|
||||
initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
initrd.kernelModules = [ "amdgpu" ];
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
kernelPackages = lib.mkForce (pkgs.linuxPackagesFor pkgs.me.linux-lava);
|
||||
};
|
||||
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
}
|
||||
16
hosts/anemone/networking.nix
Normal file
16
hosts/anemone/networking.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ config, ... }: {
|
||||
networking = {
|
||||
useDHCP = true;
|
||||
nameservers = [ "1.1.1.1" "8.8.8.8" ];
|
||||
wireless = {
|
||||
enable = true;
|
||||
userControlled.enable = true;
|
||||
#allowAuxiliaryImperativeNetworks = true;
|
||||
};
|
||||
|
||||
extraHosts = ''
|
||||
192.168.100.12 strawberry
|
||||
192.168.100.15 caramel
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@
|
|||
"kernel.core_pattern" = "|/bin/false";
|
||||
"kernel.sysrq" = 1;
|
||||
};
|
||||
loader.grub.useOSProber = true;
|
||||
};
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
zramSwap.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Depends on bspwm
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ xtitle ];
|
||||
home.packages = with pkgs; [ socat ];
|
||||
programs.eww = {
|
||||
enable = true;
|
||||
configDir = ../../res/eww;
|
||||
|
|
|
|||
0
modules/user/hyprland.nix
Normal file
0
modules/user/hyprland.nix
Normal file
|
|
@ -1,6 +1,7 @@
|
|||
{ config, inputs, ... }: {
|
||||
{ config, inputs, pkgs, ... }: {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
theme = "theme";
|
||||
};
|
||||
xdg.configFile."rofi/theme.rasi".source = ../../res/theme.rasi;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ builtins.map (path: import path) [
|
|||
./corectrl.nix
|
||||
./discord.nix
|
||||
./eww.nix
|
||||
./linux-firmware.nix
|
||||
./material-icons.nix
|
||||
./picom.nix
|
||||
./rofi.nix
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
self: super: {
|
||||
eww = super.eww.overrideAttrs (old: rec {
|
||||
eww = (super.eww.override { withWayland = true; }).overrideAttrs (old: rec {
|
||||
patches = old.patches ++ [
|
||||
# Use normal scroll events instead of smooth scroll ( due to https://bugzilla.gnome.org/show_bug.cgi?id=675959 )
|
||||
./patches/eww.patch
|
||||
|
|
|
|||
20
overlays/linux-firmware.nix
Normal file
20
overlays/linux-firmware.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
self: super: {
|
||||
linux-firmware = super.linux-firmware.overrideAttrs(o: {
|
||||
installPhase = ''
|
||||
ls -al
|
||||
cd cirrus
|
||||
ln -s cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-cali-10431683-spkid0-l0.bin.xz
|
||||
ln -s cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-cali-10431683-spkid0-r0.bin.xz
|
||||
ln -s cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-cali-10431683-spkid1-l0.bin.xz
|
||||
ln -s cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-cali-10431683-spkid1-r0.bin.xz
|
||||
|
||||
ln -s cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-prot-10431683-spkid0-l0.bin.xz
|
||||
ln -s cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-prot-10431683-spkid0-r0.bin.xz
|
||||
ln -s cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-prot-10431683-spkid1-l0.bin.xz
|
||||
ln -s cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-prot-10431683-spkid1-r0.bin.xz
|
||||
|
||||
ln -s cs35l41-dsp1-spk-cali-10431e12.wmfw.xz cs35l41-dsp1-spk-cali-10431683.wmfw.xz
|
||||
ln -s cs35l41-dsp1-spk-prot-10431e12.wmfw.xz cs35l41-dsp1-spk-prot-10431683.wmfw.xz
|
||||
'';
|
||||
});
|
||||
}
|
||||
20
packages/linux-lava/dsd_um3402yar.patch
Normal file
20
packages/linux-lava/dsd_um3402yar.patch
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c
|
||||
index 2eca5822055..503f3b889f1 100644
|
||||
--- a/sound/pci/hda/cs35l41_hda_property.c
|
||||
+++ b/sound/pci/hda/cs35l41_hda_property.c
|
||||
@@ -54,6 +54,7 @@
|
||||
{ "10431533", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
|
||||
{ "10431573", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
|
||||
{ "10431663", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
|
||||
+ { "10431683", I2C, 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
|
||||
{ "104316D3", SPI, 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
|
||||
{ "104316F3", SPI, 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
|
||||
{ "104317F3", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
|
||||
@@ -358,6 +359,7 @@
|
||||
{ "CSC3551", "10431533", generic_dsd_config },
|
||||
{ "CSC3551", "10431573", generic_dsd_config },
|
||||
{ "CSC3551", "10431663", generic_dsd_config },
|
||||
+ { "CSC3551", "10431683", generic_dsd_config },
|
||||
{ "CSC3551", "104316D3", generic_dsd_config },
|
||||
{ "CSC3551", "104316F3", generic_dsd_config },
|
||||
{ "CSC3551", "104317F3", generic_dsd_config },
|
||||
|
|
@ -1,19 +1,17 @@
|
|||
{ fetchFromGitHub, inputs, lib }:
|
||||
let
|
||||
version = "6.6.7";
|
||||
kernelHash = "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr";
|
||||
version = "6.7.0";
|
||||
kernelHash = "0s8hbcsg7fdvspqam8kzcxygjsznr4zfi60nqgc81l3n4m518cgg";
|
||||
kernelPatchHash = "1qnial7m91l3amcsgms3cs599pi529kvda1c982qk45s39y029xj";
|
||||
|
||||
mm = lib.versions.majorMinor version;
|
||||
tkgPatches = [
|
||||
"0001-mm-Support-soft-dirty-flag-reset-for-VA-range"
|
||||
"0002-clear-patches"
|
||||
"0002-mm-Support-soft-dirty-flag-read-with-reset"
|
||||
"0003-glitched-base"
|
||||
"0003-glitched-eevdf-additions"
|
||||
"0003-glitched-cfs"
|
||||
"0007-v${mm}-fsync1_via_futex_waitv"
|
||||
"0007-v${mm}-winesync"
|
||||
# "0007-v${mm}-winesync" currently fails to patch
|
||||
"0012-misc-additions"
|
||||
];
|
||||
|
||||
|
|
@ -37,7 +35,8 @@ in {
|
|||
};
|
||||
|
||||
kernelPatches = [
|
||||
kernelPatchSrc
|
||||
(patch ./dsd_um3402yar.patch)
|
||||
#kernelPatchSrc
|
||||
]
|
||||
++ builtins.map (name: {
|
||||
inherit name;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,3 @@
|
|||
(defwindow linebar :monitor 0
|
||||
:geometry (geometry :x "30px"
|
||||
:y "0%"
|
||||
:width "100%"
|
||||
:height "2px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:windowtype "dock"
|
||||
:wm-ignore false
|
||||
(wlinebar))
|
||||
|
||||
(defwindow mainbar :monitor 0
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0%"
|
||||
|
|
@ -16,8 +5,8 @@
|
|||
:height "30px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:windowtype "dock"
|
||||
:wm-ignore false
|
||||
:exclusive false
|
||||
:focusable false
|
||||
(bar))
|
||||
|
||||
(defvar time-extended false) ; for :run-while property of below variable
|
||||
|
|
@ -34,8 +23,6 @@
|
|||
:run-while time-extended
|
||||
`date "+:%S"`)
|
||||
|
||||
(deflisten lworkspaces "./scripts/workspaces.sh")
|
||||
(deflisten llineworkspaces "./scripts/line-workspaces.sh")
|
||||
(deflisten ltitle "./scripts/title.sh")
|
||||
|
||||
(defwidget bar []
|
||||
|
|
@ -46,15 +33,19 @@
|
|||
(title)
|
||||
(time))))
|
||||
|
||||
(defwidget wlinebar []
|
||||
(eventbox :onscroll "./scripts/scroll.sh {}"
|
||||
(line_workspaces)))
|
||||
|
||||
(deflisten workspaces :initial "[]" "./scripts/workspaces.sh")
|
||||
(deflisten current_workspace :initial "1" "./scripts/active-workspace.sh")
|
||||
(defwidget workspaces []
|
||||
(literal :content lworkspaces))
|
||||
|
||||
(defwidget line_workspaces []
|
||||
(literal :content llineworkspaces))
|
||||
(box :class "widget workspaces"
|
||||
:halign "start"
|
||||
:valign "center"
|
||||
:vexpand true
|
||||
:hexpand true
|
||||
(for workspace in workspaces
|
||||
(eventbox :cursor "hand"
|
||||
(button :class "${workspace.id == current_workspace ? "focused" : (workspace.windows > 0 ? "occupied" : "empty")}"
|
||||
:onclick "hyprctl dispatch workspace ${workspace.id}"
|
||||
"${workspace.id == current_workspace ? "" : (workspace.windows > 0 ? "" : "")}")))))
|
||||
|
||||
(defwidget title []
|
||||
(literal :content ltitle))
|
||||
|
|
@ -72,6 +63,5 @@
|
|||
(time_extension :text {time-extended ? petimea : ""})
|
||||
(label :text ptime
|
||||
:class "base")
|
||||
(time_extension :text {time-extended ? petimeb : ""})
|
||||
)))
|
||||
(time_extension :text {time-extended ? petimeb : ""}))))
|
||||
|
||||
|
|
|
|||
6
res/eww/scripts/active-workspace.sh
Executable file
6
res/eww/scripts/active-workspace.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
|
||||
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
|
||||
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Checks if a list ($1) contains an element ($2)
|
||||
contains() {
|
||||
for e in $1; do
|
||||
[ "$e" -eq "$2" ] && echo 1 && return
|
||||
done
|
||||
echo 0
|
||||
}
|
||||
|
||||
print_workspaces() {
|
||||
buf=""
|
||||
desktops=$(bspc query -D --names)
|
||||
focused_desktop=$(bspc query -D -d focused --names)
|
||||
occupied_desktops=$(bspc query -D -d .occupied --names)
|
||||
urgent_desktops=$(bspc query -D -d .urgent --names)
|
||||
|
||||
for d in $desktops; do
|
||||
if [ "$(contains "$focused_desktop" "$d")" -eq 1 ]; then
|
||||
ws=$d
|
||||
class="focused"
|
||||
elif [ "$(contains "$occupied_desktops" "$d")" -eq 1 ]; then
|
||||
ws=$d
|
||||
class="occupied"
|
||||
elif [ "$(contains "$urgent_desktops" "$d")" -eq 1 ]; then
|
||||
ws=$d
|
||||
class="urgent"
|
||||
else
|
||||
ws=$d
|
||||
class="empty"
|
||||
fi
|
||||
|
||||
buf="$buf (eventbox :cursor \"hand\" (button :class \"$class\" :onclick \"bspc desktop -f $ws\" \"\"))"
|
||||
done
|
||||
|
||||
echo "(box :class \"widget line-workspaces\" :halign \"start\" :valign \"center\" :vexpand true :hexpand true $buf)"
|
||||
}
|
||||
|
||||
# Listen to bspwm changes
|
||||
print_workspaces
|
||||
bspc subscribe desktop node_transfer | while read -r _ ; do
|
||||
print_workspaces
|
||||
done
|
||||
|
|
@ -1,10 +1,17 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
xtitle -s | while read -r line ; do
|
||||
trunc=$(echo $line | cut -c-85)
|
||||
if [ -z "$line" ]; then
|
||||
out () {
|
||||
if [ -z "$1" ]; then
|
||||
echo ""
|
||||
else
|
||||
echo "(box :class \"widget title\" :halign \"center\" :valign \"center\" :vexpand true :hexpand true (label :text \"${trunc}\"))"
|
||||
echo "(box :class \"widget title\" :halign \"center\" :valign \"center\" :vexpand true :hexpand true (label :text \"$1\"))"
|
||||
fi
|
||||
}
|
||||
|
||||
init=$(hyprctl activewindow -j | jq --raw-output .title)
|
||||
out "$init"
|
||||
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | stdbuf -o0 awk -F '>>|,' '/^activewindow>>/{print $3}' | while read -r line ; do
|
||||
trunc=$(echo $line | cut -c-85)
|
||||
out "$trunc"
|
||||
done
|
||||
|
|
|
|||
|
|
@ -1,47 +1,11 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Checks if a list ($1) contains an element ($2)
|
||||
contains() {
|
||||
for e in $1; do
|
||||
[ "$e" -eq "$2" ] && echo 1 && return
|
||||
done
|
||||
echo 0
|
||||
spaces (){
|
||||
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
|
||||
seq 1 10 | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
|
||||
}
|
||||
|
||||
print_workspaces() {
|
||||
buf=""
|
||||
desktops=$(bspc query -D --names)
|
||||
focused_desktop=$(bspc query -D -d focused --names)
|
||||
occupied_desktops=$(bspc query -D -d .occupied --names)
|
||||
urgent_desktops=$(bspc query -D -d .urgent --names)
|
||||
|
||||
for d in $desktops; do
|
||||
if [ "$(contains "$focused_desktop" "$d")" -eq 1 ]; then
|
||||
ws=$d
|
||||
icon=""
|
||||
class="focused"
|
||||
elif [ "$(contains "$occupied_desktops" "$d")" -eq 1 ]; then
|
||||
ws=$d
|
||||
icon=""
|
||||
class="occupied"
|
||||
elif [ "$(contains "$urgent_desktops" "$d")" -eq 1 ]; then
|
||||
ws=$d
|
||||
icon=""
|
||||
class="urgent"
|
||||
else
|
||||
ws=$d
|
||||
icon=""
|
||||
class="empty"
|
||||
fi
|
||||
|
||||
buf="$buf (eventbox :cursor \"hand\" (button :class \"$class\" :onclick \"bspc desktop -f $ws\" \"$icon\"))"
|
||||
done
|
||||
|
||||
echo "(box :class \"widget workspaces\" :halign \"start\" :valign \"center\" :vexpand true :hexpand true $buf)"
|
||||
}
|
||||
|
||||
# Listen to bspwm changes
|
||||
print_workspaces
|
||||
bspc subscribe desktop node_transfer | while read -r _ ; do
|
||||
print_workspaces
|
||||
spaces
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
||||
spaces
|
||||
done
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
let
|
||||
anemone = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEPFifSAybe97xDP/cq6AAjy7Fm0go0dtQ9ICK6JRUgc";
|
||||
blossom = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA5wfPCcpkNR3ubr7cBV0UwVCDo/sMmV0aI/JOJTIxQj";
|
||||
caramel = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIPFJT1XYyjDZFHYT/8RdxAReKkeU8QfpLrmMjEeW/80";
|
||||
sugarcane = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIImymDDLSOdLcsox8wxS9Z84fsbsz6Mi58OU0od2p/ZQ";
|
||||
|
||||
rin = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPru5eTBvHJ4ZmrrzPRHCGM09wQP/ZHSaKYalDuBVO15";
|
||||
in {
|
||||
"secrets/passwd.age".publicKeys = [ blossom caramel sugarcane rin ];
|
||||
"secrets/passwd.age".publicKeys = [ anemone blossom caramel sugarcane rin ];
|
||||
"secrets/wpa_conf.age".publicKeys = [ blossom caramel rin ];
|
||||
|
||||
"secrets/acme_dns.age".publicKeys = [ caramel rin ];
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 U9FXlg dDnXFO4iUwixemx1WPFZSM15/z7xtAGjZxriBbsURRg
|
||||
uv6gdP/LDmZMZu/B3IWWYEzfR+H7TJsR3Zo8hYzthQE
|
||||
-> ssh-ed25519 krYeuQ Yo3FXb2pDijXv2JxYvNP3IF0DADygWjIHEoUlfCw3zc
|
||||
vly4m2xyGfuJxBPue0mk9dodc4YAEKYTWLwx9ljVhWs
|
||||
-> ,-grease
|
||||
v4PvG0kmxXhjh7Jf
|
||||
--- 6yg8u5a9px36osMqiVI4ZPfea+ySjKB8GR/TcCG/ZXU
|
||||
q<EFBFBD>T!ř|Eí#மĐrÍňQíĚTQMąÉ‘IX#˛:f|kSiŔs^~Ą^ÖĎ_ŇôK•}§"đI)G–ŽIÝ
|
||||
~úŃ‹«*ç4ÎA^w(¸ÇŰ
|
||||
-> ssh-ed25519 krYeuQ SBY9moNFVc8mdntk13DRWSIyoJfSuzsBrhzmaH8u51c
|
||||
5QU1vtRllrmYsArw6LSktuRLQ7QbrtNBKVrOG8d2pyk
|
||||
-> ssh-ed25519 U9FXlg HR/A429gFyLaUq6QSyTYv8yK5syfJbLDFzmhGGTZt1M
|
||||
jCXRzzzp8vfB4n8pM6BAZr/IC9E+vBeeOm0AYGYBOe0
|
||||
--- /vlh5vuiRyVyiQpn4PZ5zBeUNaQclSW5Y5z1mR43fFg
|
||||
á,Sïï<C3AF>=ó;˜9Ð}Ö<0F>J|ý¢µ×5ÌUäjB„†Ã{Öj-ª<>v²ý¿(‘T7lÜÃÇ^–kÉ€Qx…^?å`½/‡N£ìÐ|<7C><>ŽaqŒÕxÄâƒI
|
||||
Binary file not shown.
|
|
@ -1,10 +1,8 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 U9FXlg YL/xEUVIIOIeP2FRVxZhkCg/yaiX50S74HSMslKzoSw
|
||||
SqzuQt4hd6ICDRlq+6Vqy0j/ZuNm3waCg7pUt9EqVD0
|
||||
-> ssh-ed25519 krYeuQ IsFu0w7BFrTm5rAE6Ysxuievf3NiC60h/KkoUO51FUA
|
||||
/BCYR/4qP+1449Kf2MY79sq0ahpjqI5fq7Sme2swU6U
|
||||
-> V;-grease ^F.M
|
||||
lxjBnTXUAhPceJGeXm985SzVP4D2PsxkUEv/kKSx+6LGCHUzYAggYXi8C2ahorkY
|
||||
XrYNvorBDG0aezi2GSicmAf4pQkkrLcvZhsmU+/QOKzyAxMw7V0
|
||||
--- jUlhN0y3o/J/jQlcN0um+lTQ3hZv2Ur0crxSsGeZ28c
|
||||
ºDJ?…w䟆9%s5ÕzüÈk<C2AD>¢ÒõŒˆA›3U"»V3Î[ŒinÊå<C38A>0÷¹Ù’¿k’”Óø°X„Íøôi°:LÇÆo¹aDºé'$Oý<4F>54õ&Õ<>Þ²‘ ˆÎ^–UL±EQP¶Ïû/
|
||||
-> ssh-ed25519 krYeuQ V3hCVmXcLm9tDavUNciUCqqCc7+hg6lJir0t4iUoOA4
|
||||
CH3+qpJsmjTJ9+lB7hr1nE5W9RteMtpkuJHlCOSrc0c
|
||||
-> ssh-ed25519 U9FXlg VT5DxyuigkAL6btdC5Mt4vvCuzOB7xjuf/n/fYOALF0
|
||||
Ln3p2c9swsONWzPSkuY/ovv3HG8Sl/3dHpHqRHIckrU
|
||||
--- sBS5K5WGRvcgrs9CRXZjvteE5qQrPhM/Trmhc7bU+dg
|
||||
†<EFBFBD>tñ ƒfÿÕö9âKÚäh3"ÜÌÔ§’Šî¨cLð\E@¿-ÐÈnjb<>+BI;
|
||||
ñ(QÄþµ|À0jrÃm®ˆ¼H¡Q.hÌZ#l䘻÷1
ÓÃOI<49>pÊt’ÿ‘Px€ãqóC¸öÉY
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 U9FXlg Y/Q29duiKdP+fV11ellTIMtHFyi9saczXfbcnq7iB0s
|
||||
D9P8MAHlFOLR7P8Ux90CjljnhExARGnuSuw24AXOr5c
|
||||
-> ssh-ed25519 CUCjXQ eGpAJd5fydYBlC7o34CP7091jg4O4NsuLji1/rYtQVg
|
||||
9/rgYCpe9wcCrLM7fTYI92oa+3+SAEK6ZgJNmBeOtnM
|
||||
-> A-grease xTj~+6%4 aF]RZn tj](JCp
|
||||
5iDN8bexrr7eNqyFwBNCUefrOqAIS10KppbrdDJH1+fD0TkUifEOjcM2uV/+3tH2
|
||||
dYX5eM94zkmwxw
|
||||
--- QKnJmu6ICTTfadXCKLKii03FXVTBqAFvbAZVHGzGLzE
|
||||
äï<GÚÓ4q§<71>#gàâ
ªJ_<17>ÿ^o–ò4G•Vð£æþ5ä§
|
||||
ÑÈŠ$½<7F>wŸTú‹œ‹Íl¡•t—‹!…a†wŘí<CB9C>[Å„›
|
||||
-> ssh-ed25519 CUCjXQ iM2w01v4y0Q3DVbpGtt6f3HiHMRw7Xr08JgTB6fe8x4
|
||||
WiBMVRZr1edBVfLAPAFT4GSEGoyn9jWzO92yysNM9Mo
|
||||
-> ssh-ed25519 U9FXlg Bvlaqu4nEbjfBGgBFKDmD1cBbxH2+dyz1BHzegz1AS4
|
||||
+sf3rC0J2Ik1SNtpr52GxV6G6tzGLiwlvjXFWE3qrSw
|
||||
--- yaZjH1jeXqPGiw1lIkH9uz6QJo/nM1lBezbpVlJDNUM
|
||||
Õñ´cg¾¹j‡<6A>û"ü
|
||||
UÅÑ"¨^¯€ÕàÌ*Þ<07>A«¢Dvl2‰cÿRq).NýLt˜ZjCBŸº5ûâl^É0)Á䥆.¥§Û
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -34,15 +34,17 @@
|
|||
mpv
|
||||
obs
|
||||
rofi
|
||||
spicetify
|
||||
# spicetify
|
||||
|
||||
dunst
|
||||
eww
|
||||
picom
|
||||
# picom
|
||||
#
|
||||
# xorg
|
||||
# sxhkd
|
||||
# bspwm
|
||||
|
||||
xorg
|
||||
sxhkd
|
||||
bspwm
|
||||
#hyprland
|
||||
];
|
||||
|
||||
home.file.".local/bin/ipc-bridge.exe".source = builtins.fetchurl {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
gimp
|
||||
gnome.file-roller
|
||||
gnome.zenity
|
||||
kotatogram-desktop
|
||||
krita
|
||||
lm_sensors
|
||||
lutris
|
||||
|
|
@ -37,7 +36,6 @@
|
|||
mangohud
|
||||
me.tetrio-desktop-plus
|
||||
inputs.nix-gaming.packages.x86_64-linux.osu-lazer-bin
|
||||
inputs.nix-gaming.packages.x86_64-linux.wine-osu
|
||||
pavucontrol
|
||||
prismlauncher
|
||||
psensor
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue