Compare commits

...

14 Commits

Author SHA1 Message Date
6613f56600
add persist script to compare dirs for impermanence 2024-06-19 12:57:24 +03:00
d326cd0832
remove obsolete waybar style.css 2024-06-19 12:57:24 +03:00
f0859a15b4
rewrite minecraft profile 2024-06-19 12:57:24 +03:00
92e25958e5
add golang extension to vscode 2024-06-19 12:54:36 +03:00
a791daade3
update aagl 2024-06-19 12:54:22 +03:00
0722fae9f0
move zsh-z db state to persist directory 2024-06-19 12:52:04 +03:00
91ed62194a
add GSETTINGS_SCHEMA_DIR env 2024-06-19 12:50:27 +03:00
7bc90a7723
fix cpu widget in waybar 2024-06-19 12:50:13 +03:00
02d957480d
add wlogout 2024-06-19 12:49:37 +03:00
f59c9050c3
add grub and console catppuccin 2024-06-19 12:44:15 +03:00
28cf6d4489
move bottom 2024-06-19 12:42:38 +03:00
ece78f0ec6
move some profiles 2024-06-18 18:54:43 +03:00
c41aab707a
wip system-wide catppuccin theme 2024-06-18 18:54:43 +03:00
dependabot[bot]
b8ebeed049 Bump nixbuild/nix-quick-install-action in the github-actions group
Bumps the github-actions group with 1 update: [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action).


Updates `nixbuild/nix-quick-install-action` from 27 to 28
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v27...v28)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 15:54:07 +00:00
39 changed files with 798 additions and 642 deletions

View File

@ -28,7 +28,7 @@ jobs:
ref: ${{ github.head_ref }}
- name: Install nix
uses: nixbuild/nix-quick-install-action@v27
uses: nixbuild/nix-quick-install-action@v28
with:
load_nixConfig: false
nix_conf: |

View File

@ -20,7 +20,7 @@ jobs:
ref: ${{ github.head_ref }}
- name: Install nix
uses: nixbuild/nix-quick-install-action@v27
uses: nixbuild/nix-quick-install-action@v28
with:
load_nixConfig: false
nix_conf: |

113
flake.lock generated
View File

@ -8,11 +8,11 @@
]
},
"locked": {
"lastModified": 1717970544,
"narHash": "sha256-YX43aaegfqjXaZ3S+z0JI7SKOEE1Afqm/I9FBIezJ7A=",
"lastModified": 1718735045,
"narHash": "sha256-5PaPrMjQu0ojps12ecRO6qFntCU+pkUCrJIjDUFJknE=",
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"rev": "85c380e4e80fbc21d25165626ad2897cbb11af4d",
"rev": "2d4d6c0f286bd6901c8eab5e2d08593ca3394d6c",
"type": "github"
},
"original": {
@ -177,6 +177,24 @@
"type": "github"
}
},
"catppuccin-vsc": {
"inputs": {
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1716179347,
"narHash": "sha256-DPiP4yLRcPgWgrnCC/tRp5vUk9teZIfsCT2r8jr1V8A=",
"owner": "catppuccin",
"repo": "vscode",
"rev": "b7a8806f7532a091b0170f281dbc7f35c3fc7761",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "vscode",
"type": "github"
}
},
"crane": {
"inputs": {
"nixpkgs": [
@ -201,7 +219,7 @@
"deploy-rs": {
"inputs": {
"flake-compat": "flake-compat_3",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"utils": "utils"
},
"locked": {
@ -223,7 +241,7 @@
"cachix": "cachix",
"flake-compat": "flake-compat_5",
"nix": "nix_2",
"nixpkgs": "nixpkgs_6",
"nixpkgs": "nixpkgs_7",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
@ -248,7 +266,7 @@
"flake-compat"
],
"nix": "nix",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"poetry2nix": "poetry2nix",
"pre-commit-hooks": [
"devenv",
@ -877,7 +895,7 @@
},
"hyprlang_2": {
"inputs": {
"nixpkgs": "nixpkgs_7",
"nixpkgs": "nixpkgs_8",
"systems": "systems_6"
},
"locked": {
@ -1018,7 +1036,7 @@
"flake-compat": "flake-compat_6",
"flake-utils": "flake-utils_6",
"nix": "nix_3",
"nixpkgs": "nixpkgs_9"
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1669478601,
@ -1087,7 +1105,7 @@
"nix-direnv": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_11",
"nixpkgs": "nixpkgs_12",
"treefmt-nix": "treefmt-nix"
},
"locked": {
@ -1167,7 +1185,7 @@
},
"nix-index-database": {
"inputs": {
"nixpkgs": "nixpkgs_10"
"nixpkgs": "nixpkgs_11"
},
"locked": {
"lastModified": 1715483403,
@ -1192,11 +1210,11 @@
]
},
"locked": {
"lastModified": 1718328588,
"narHash": "sha256-dTuHdsZkPJg2YS7S/04d5gLpLqCmKEGuJkRO0yHklgo=",
"lastModified": 1718673998,
"narHash": "sha256-0fYv4qkbp1buCAEIuFnsN0NUFcI6SlSHiuG5YwDl5kU=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "ae25cb00075c72a2a91497814a11a00f567f5f75",
"rev": "b1d364d5f9d3d7fee8fa854d553cd95d69b9ff4c",
"type": "github"
},
"original": {
@ -1235,7 +1253,7 @@
"nix_3": {
"inputs": {
"lowdown-src": "lowdown-src",
"nixpkgs": "nixpkgs_8",
"nixpkgs": "nixpkgs_9",
"nixpkgs-regression": "nixpkgs-regression_3"
},
"locked": {
@ -1445,6 +1463,22 @@
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1669378442,
"narHash": "sha256-nm+4PN0A4SnV0SzEchxrMyKPvI3Ld/aoom4PnHeHucs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0faaf0a9bb6dedb69bfd43ac06fb27fadc476c51",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1715266358,
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
@ -1460,7 +1494,7 @@
"type": "github"
}
},
"nixpkgs_11": {
"nixpkgs_12": {
"locked": {
"lastModified": 1717868076,
"narHash": "sha256-c83Y9t815Wa34khrux81j8K8ET94ESmCuwORSKm2bQY=",
@ -1476,7 +1510,7 @@
"type": "github"
}
},
"nixpkgs_12": {
"nixpkgs_13": {
"locked": {
"lastModified": 1718160348,
"narHash": "sha256-9YrUjdztqi4Gz8n3mBuqvCkMo4ojrA6nASwyIKWMpus=",
@ -1492,7 +1526,7 @@
"type": "github"
}
},
"nixpkgs_13": {
"nixpkgs_14": {
"locked": {
"lastModified": 1717112898,
"narHash": "sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY=",
@ -1541,6 +1575,22 @@
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1712963716,
"narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cfd6b5fc90b15709b780a5a1619695a88505a176",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
@ -1556,7 +1606,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1692808169,
"narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=",
@ -1572,7 +1622,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1713361204,
"narHash": "sha256-TA6EDunWTkc5FvDCqU3W2T3SFn0gRZqh6D/hJnM02MM=",
@ -1588,7 +1638,7 @@
"type": "github"
}
},
"nixpkgs_7": {
"nixpkgs_8": {
"locked": {
"lastModified": 1708475490,
"narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=",
@ -1604,7 +1654,7 @@
"type": "github"
}
},
"nixpkgs_8": {
"nixpkgs_9": {
"locked": {
"lastModified": 1657693803,
"narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
@ -1620,22 +1670,6 @@
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1669378442,
"narHash": "sha256-nm+4PN0A4SnV0SzEchxrMyKPvI3Ld/aoom4PnHeHucs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0faaf0a9bb6dedb69bfd43ac06fb27fadc476c51",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.05",
"repo": "nixpkgs",
"type": "github"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils_3",
@ -1724,7 +1758,7 @@
"flake-compat": "flake-compat_9",
"flake-parts": "flake-parts_3",
"libnbtplusplus": "libnbtplusplus",
"nixpkgs": "nixpkgs_13",
"nixpkgs": "nixpkgs_14",
"pre-commit-hooks": "pre-commit-hooks_2"
},
"locked": {
@ -1752,6 +1786,7 @@
"base16-tokyonight-scheme": "base16-tokyonight-scheme",
"cassowary": "cassowary",
"catppuccin": "catppuccin",
"catppuccin-vsc": "catppuccin-vsc",
"deploy-rs": "deploy-rs",
"devenv": "devenv",
"disko": "disko",
@ -1767,7 +1802,7 @@
"nix-fast-build": "nix-fast-build",
"nix-vscode-marketplace": "nix-vscode-marketplace",
"nixos-generators": "nixos-generators",
"nixpkgs": "nixpkgs_12",
"nixpkgs": "nixpkgs_13",
"nixpkgs-master": "nixpkgs-master",
"nixpkgs-stable": "nixpkgs-stable_3",
"prismlauncher": "prismlauncher",

View File

@ -36,6 +36,7 @@
inputs.nixpkgs.follows = "nixpkgs";
};
catppuccin.url = "github:catppuccin/nix";
catppuccin-vsc.url = "github:catppuccin/vscode";
deploy-rs.url = "github:serokell/deploy-rs";
devenv.url = "github:cachix/devenv";
disko = {

View File

@ -0,0 +1,44 @@
{ config, pkgs, lib, ... }: {
# TODO: settings?
home-manager.users.${config.mainuser} = {
programs = {
bat = {
enable = true;
# config = {};
extraPackages = with pkgs.bat-extras; [ batdiff batgrep batman batwatch ];
# syntaxes = {};
# themes = {};
};
bottom.enable = true;
fzf.enable = true;
fzf.enableZshIntegration = true;
gitui = {
enable = true;
# keyConfig = '''';
};
micro = {
enable = true;
# settings = {};
};
zathura = {
enable = true;
extraConfig = ''
set selection-clipboard clipboard
'';
# mappings = {};
# options = {};
};
zsh.syntaxHighlighting.enable = true;
};
};
defaultApplications = {
pdf = let
home = config.home-manager.users.${config.mainuser};
zathura-pkg = home.programs.zathura.package;
in {
cmd = lib.getExe zathura-pkg;
desktop = "zathura";
};
};
}

View File

@ -10,43 +10,46 @@ in
home-manager.users.${config.mainuser} = {
programs.kitty = {
enable = true;
font.name = "${thm.fonts.mono.family} ${thm.fontSizes.small.str}";
# font.package = ;
font.name = thm.fonts.mono.family;
font.size = thm.fontSizes.small.int;
shellIntegration.enableZshIntegration = true;
settings = {
foreground = "#${thm.base05-hex}";
background = "#${thm.base00-hex}";
selection_background = "#${thm.base05-hex}";
selection_foreground = "#${thm.base00-hex}";
url_color = "#${thm.base04-hex}";
active_border_color = "#${thm.base03-hex}";
inactive_border_color = "#${thm.base01-hex}";
active_tab_background = "#${thm.base00-hex}";
active_tab_foreground = "#${thm.base05-hex}";
inactive_tab_background = "#${thm.base01-hex}";
inactive_tab_foreground = "#${thm.base04-hex}";
tab_bar_background = "#${thm.base01-hex}";
cursor = "#${thm.base05-hex}";
color0 = "#${thm.base00-hex}";
color1 = "#${thm.base08-hex}";
color2 = "#${thm.base0B-hex}";
color3 = "#${thm.base0A-hex}";
color4 = "#${thm.base0D-hex}";
color5 = "#${thm.base0E-hex}";
color6 = "#${thm.base0C-hex}";
color7 = "#${thm.base05-hex}";
color8 = "#${thm.base03-hex}";
color9 = "#${thm.base08-hex}";
color10 = "#${thm.base0B-hex}";
color11 = "#${thm.base0A-hex}";
color12 = "#${thm.base0D-hex}";
color13 = "#${thm.base0E-hex}";
color14 = "#${thm.base0C-hex}";
color15 = "#${thm.base07-hex}";
color16 = "#${thm.base09-hex}";
color17 = "#${thm.base0F-hex}";
color18 = "#${thm.base01-hex}";
color19 = "#${thm.base02-hex}";
color20 = "#${thm.base04-hex}";
color21 = "#${thm.base06-hex}";
# foreground = "#${thm.base05-hex}";
# background = "#${thm.base00-hex}";
# selection_background = "#${thm.base05-hex}";
# selection_foreground = "#${thm.base00-hex}";
# url_color = "#${thm.base04-hex}";
# active_border_color = "#${thm.base03-hex}";
# inactive_border_color = "#${thm.base01-hex}";
# active_tab_background = "#${thm.base00-hex}";
# active_tab_foreground = "#${thm.base05-hex}";
# inactive_tab_background = "#${thm.base01-hex}";
# inactive_tab_foreground = "#${thm.base04-hex}";
# tab_bar_background = "#${thm.base01-hex}";
# cursor = "#${thm.base05-hex}";
# color0 = "#${thm.base00-hex}";
# color1 = "#${thm.base08-hex}";
# color2 = "#${thm.base0B-hex}";
# color3 = "#${thm.base0A-hex}";
# color4 = "#${thm.base0D-hex}";
# color5 = "#${thm.base0E-hex}";
# color6 = "#${thm.base0C-hex}";
# color7 = "#${thm.base05-hex}";
# color8 = "#${thm.base03-hex}";
# color9 = "#${thm.base08-hex}";
# color10 = "#${thm.base0B-hex}";
# color11 = "#${thm.base0A-hex}";
# color12 = "#${thm.base0D-hex}";
# color13 = "#${thm.base0E-hex}";
# color14 = "#${thm.base0C-hex}";
# color15 = "#${thm.base07-hex}";
# color16 = "#${thm.base09-hex}";
# color17 = "#${thm.base0F-hex}";
# color18 = "#${thm.base01-hex}";
# color19 = "#${thm.base02-hex}";
# color20 = "#${thm.base04-hex}";
# color21 = "#${thm.base06-hex}";
enable_audio_bell = false;
confirm_os_window_close = 0;
};

View File

@ -19,10 +19,10 @@
height = 80;
defaultTimeout = 10000;
maxVisible = 10;
backgroundColor = "#${theme.base00-hex}AA";
textColor = "#${theme.base05-hex}";
borderColor = "#${theme.base0D-hex}AA";
progressColor = "over #${theme.base0B-hex}";
# backgroundColor = "#${theme.base00-hex}AA";
# textColor = "#${theme.base05-hex}";
# borderColor = "#${theme.base0D-hex}AA";
# progressColor = "over #${theme.base0B-hex}";
iconPath = "${theme.iconPackage}/share/icons/${theme.iconTheme}";
maxIconSize = 24;
};

View File

@ -5,7 +5,7 @@ with config.deviceSpecific; {
home-manager.users.${config.mainuser} = {
home.packages = with pkgs; [
# --- cli ---
bat
# bat
comma
curl
curlie
@ -32,8 +32,8 @@ with config.deviceSpecific; {
usbutils
zip
# --- tui ---
bottom
micro
# bottom
# micro
ncdu
procs
# --- gui ---

View File

@ -15,7 +15,7 @@ in
package = pkgs.rofi-wayland;
font = "${thm.fonts.mono.family} ${thm.fontSizes.header.str}";
terminal = config.defaultApplications.term.cmd;
theme = "${themeFile}";
# theme = "${themeFile}";
};
};
}

View File

@ -64,7 +64,9 @@ in
ext-vscode.pkief.material-icon-theme
ext-vscode.streetsidesoftware.code-spell-checker
ext-vscode.streetsidesoftware.code-spell-checker-russian
ext-vscode.usernamehw.errorlens
ext-vscode.ultram4rine.vscode-choosealicense
ext-vscode.usernamehw.errorlens
ext-vscode.yzhang.markdown-all-in-one
# Rust
ext-vscode.gruntfuggly.todo-tree
@ -75,6 +77,8 @@ in
ext-vscode.tamasfe.even-better-toml
ext-vscode.usernamehw.errorlens
ext-vscode.vadimcn.vscode-lldb
# Golang
ext-vscode.golang.go
];
# mutableExtensionsDir = false;
userSettings = {
@ -112,6 +116,12 @@ in
"git-graph.repository.sign.tags" = true;
"git.autofetch" = false;
"git.enableCommitSigning" = true;
"go.useLanguageServer" = true;
"gopls" = {
"ui.semanticTokens" = true;
"formatting.gofumpt" = true;
"ui.diagnostic.staticcheck" = true;
};
"license.author" = "Dmitriy <ataraxiadev@ataraxiadev.com>";
"license.default" = "mit";
"license.extension" = ".md";

View File

@ -1,23 +0,0 @@
{ config, lib, ... }:
let
home = config.home-manager.users.${config.mainuser};
zathura-pkg = home.programs.zathura.package;
in{
defaultApplications = {
pdf = {
cmd = lib.getExe zathura-pkg;
desktop = "zathura";
};
};
home-manager.users.${config.mainuser} = {
programs.zathura = {
enable = true;
extraConfig = ''
set selection-clipboard clipboard
'';
# mappings = {};
# options = {};
};
};
}

View File

@ -1,25 +1,15 @@
{ config, pkgs, lib, inputs, ... }:
let
jre21 = pkgs.temurin-bin;
jre17 = pkgs.temurin-bin-17;
jvmOpts = lib.concatStringsSep " " [
"-XX:+UseG1GC"
"-XX:+ParallelRefProcEnabled"
"-XX:MaxGCPauseMillis=200"
"-XX:+UnlockExperimentalVMOptions"
"-XX:+DisableExplicitGC"
"-XX:+UseZGC"
"-XX:+ZGenerational"
"-XX:-ZUncommit"
"-XX:-ZProactive"
"-XX:+AlwaysPreTouch"
"-XX:G1NewSizePercent=40"
"-XX:G1MaxNewSizePercent=50"
"-XX:G1HeapRegionSize=16M"
"-XX:G1ReservePercent=15"
"-XX:G1HeapWastePercent=5"
"-XX:G1MixedGCCountTarget=4"
"-XX:InitiatingHeapOccupancyPercent=20"
"-XX:G1MixedGCLiveThresholdPercent=90"
"-XX:G1RSetUpdatingPauseTimePercent=5"
"-XX:SurvivorRatio=32"
"-XX:+PerfDisableSharedMem"
"-XX:MaxTenuringThreshold=1"
"-XX:+UseTransparentHugePages"
];
rsyncSSHKeys = config.users.users.${config.mainuser}.openssh.authorizedKeys.keys;
@ -32,8 +22,14 @@ let
online-mode = false;
spawn-protection = 0;
};
in {
imports = [ inputs.mms.module ];
instances = config.services.modded-minecraft-servers.instances;
in
{
imports = [
inputs.mms.module
inputs.ataraxiasjel-nur.nixosModules.rustic
];
services.modded-minecraft-servers = {
eula = true;
instances = {
@ -44,52 +40,123 @@ in {
jvmInitialAllocation = "6144m";
jvmPackage = jre17;
serverConfig = defaults // {
server-port = 25565;
rcon-port = 25566;
server-port = 25567;
rcon-port = 25568;
motd = "StaTech";
max-world-size = 50000;
level-seed = "-4411466874705470064";
};
};
all-of-create = {
enable = true;
inherit rsyncSSHKeys jvmOpts;
jvmMaxAllocation = "4096m";
jvmInitialAllocation = "4096m";
jvmPackage = jre21;
serverConfig = defaults // {
server-port = 25565;
rcon-port = 25566;
motd = "All of Create";
max-world-size = 50000;
level-seed = "-6893059259197159072";
};
};
};
};
persist.state.directories = [ "/var/lib/mc-statech" ];
persist.state.directories = map (x: "/var/lib/mc-${x}") (lib.attrNames instances);
# secrets.restic-mc-pass.services = [ "restic-backups-mc-servers.service" ];
# secrets.restic-mc-repo.services = [ "restic-backups-mc-servers.service" ];
# services.restic.backups.mc-servers = {
# initialize = true;
# passwordFile = config.secrets.restic-mc-pass.decrypted;
# repositoryFile = config.secrets.restic-mc-repo.decrypted;
# paths = [ "/var/lib/mc-statech" ];
# exclude = [ "/var/lib/mc-statech/backups" ];
# environmentFile = "${pkgs.writeText "restic.env" ''
# GOMAXPROCS=1
# MCRCON_PORT=25566
# MCRCON_PASS=whatisloveohbabydonthurtmedonthurtmenomore
# ''}";
# extraBackupArgs = [ "--no-scan" ];
# backupPrepareCommand = ''
# if ! systemctl is-active --quiet mc-statech.service; then
# echo "Minecraft server is not active. Skipping restic backup."
# exit 1
# fi
# ${pkgs.mcrcon}/bin/mcrcon "say Restic backup is started!" save-off "save-all"
# sleep 3
# '';
# backupCleanupCommand = ''
# systemctl is-active --quiet mc-statech.service && ${pkgs.mcrcon}/bin/mcrcon "say Restic backup is done!" save-on
# '';
# timerConfig = {
# OnCalendar = "*:0/15";
# };
# pruneOpts = [
# "--keep-last 12"
# "--keep-hourly 12"
# "--keep-daily 5"
# "--keep-weekly 2"
# "--keep-monthly 0"
# "--keep-yearly 0"
# ];
# };
# Rustic backup for all servers, including disabled ones
sops.secrets.rustic-workstation-pass.sopsFile = inputs.self.secretsDir + /rustic.yaml;
sops.secrets.rustic-minecraft-s3-env.sopsFile = inputs.self.secretsDir + /rustic.yaml;
services.rustic.backups = rec {
workstation-minecraft-backup = {
backup = true;
prune = false;
initialize = false;
environmentFile = config.sops.secrets.rustic-minecraft-s3-env.path;
pruneOpts = [ "--repack-cacheable-only=false" ];
timerConfig = {
OnCalendar = "*:0/15";
};
backupPrepareCommand = ''
start_backup=false
${lib.strings.concatLines (
map (x: "systemctl is-active --quiet mc-${x}.service && start_backup=true") (
lib.attrNames instances
)
)}
if [ "$start_backup" = false ]; then
echo "No Minecraft servers are running. Skip backup."
exit 1
fi
${lib.strings.concatLines (
map (x: ''
if systemctl is-active --quiet mc-${x}.service; then
export MCRCON_PORT=${toString instances.${x}.serverConfig.rcon-port}
export MCRCON_PASS=${instances.${x}.serverConfig.rcon-password}
${pkgs.mcrcon}/bin/mcrcon "say Rustic backup is started!" save-off "save-all"
fi
'') (lib.attrNames instances)
)}
sleep 3
'';
backupCleanupCommand = ''
${lib.strings.concatLines (
map (x: ''
if systemctl is-active --quiet mc-${x}.service; then
export MCRCON_PORT=${toString instances.${x}.serverConfig.rcon-port}
export MCRCON_PASS=${instances.${x}.serverConfig.rcon-password}
${pkgs.mcrcon}/bin/mcrcon "say Rustic backup is done!" save-on
fi
'') (lib.attrNames instances)
)}
'';
settings = let
label = "workstation-minecraft";
in {
repository = {
repository = "opendal:s3";
password-file = config.sops.secrets.rustic-workstation-pass.path;
options = {
root = label;
bucket = "rustic-backups";
region = "us-east-1";
endpoint = "https://s3.ataraxiadev.com";
};
};
backup = {
host = config.device;
label = label;
ignore-devid = true;
group-by = "label";
skip-identical-parent = true;
glob = [ "!/var/lib/**/backups" ];
sources = [{
source = lib.strings.concatStringsSep " " (map (x: "/var/lib/mc-${x}") (lib.attrNames instances));
}];
};
forget = {
filter-label = [ label ];
group-by = "label";
prune = true;
keep-hourly = 6;
keep-daily = 2;
keep-weekly = 1;
keep-monthly = 0;
};
};
};
workstation-minecraft-prune = workstation-minecraft-backup // {
backup = false;
prune = true;
createWrapper = false;
backupPrepareCommand = null;
backupCleanupCommand = null;
timerConfig = {
OnCalendar = "hourly";
Persistent = true;
};
};
};
}

View File

@ -66,7 +66,7 @@
cursorPackage = pkgs.bibata-cursors-tokyonight;
# cursorPackage = pkgs.bibata-cursors;
cursorSize = 16;
cursorSize = 24;
cursorTheme = "Bibata-Modern-TokyoNight";
};
};

View File

@ -0,0 +1,131 @@
{ config, pkgs, lib, inputs, ... }:
let
thm = config.lib.base16.theme;
# this capitalizes the first letter in a string.
mkUpper =
str:
(lib.toUpper (builtins.substring 0 1 str)) +
(builtins.substring 1 (builtins.stringLength str) str);
accent = "mauve";
# accent = "lavender";
flavor = "mocha";
size = "standard"; # "standard" "compact"
tweaks = [ "normal" ]; # "black" "rimless" "normal"
flavorUpper = mkUpper flavor;
accentUpper = mkUpper accent;
sizeUpper = mkUpper size;
gtkTheme = if flavor == "latte" then "Light" else "Dark";
in
{
imports = [ inputs.catppuccin.nixosModules.catppuccin ];
catppuccin.accent = accent;
catppuccin.flavor = flavor;
boot.loader.grub.catppuccin.enable = true;
console.catppuccin.enable = true;
home-manager.users.${config.mainuser} = rec {
imports = [ inputs.catppuccin.homeManagerModules.catppuccin ];
catppuccin.accent = accent;
catppuccin.flavor = flavor;
qt.style.catppuccin.enable = true;
qt.style.catppuccin.apply = true;
services.mako.catppuccin.enable = true;
programs = {
bat.catppuccin.enable = true;
bottom.catppuccin.enable = true;
fzf.catppuccin.enable = true;
gitui.catppuccin.enable = true;
glamour.catppuccin.enable = true;
kitty.catppuccin.enable = true;
micro.catppuccin.enable = true;
mpv.catppuccin.enable = true;
rofi.catppuccin.enable = true;
zathura.catppuccin.enable = true;
zsh.syntaxHighlighting.enable = true;
zsh.syntaxHighlighting.catppuccin.enable = true;
waybar.catppuccin.enable = true;
waybar.catppuccin.mode = "createLink";
vscode = {
extensions = let
ext-vscode = inputs.nix-vscode-marketplace.extensions.${pkgs.system}.vscode-marketplace;
in [
ext-vscode.alexdauenhauer.catppuccin-noctis
ext-vscode.catppuccin.catppuccin-vsc-icons
(inputs.catppuccin-vsc.packages.${pkgs.system}.catppuccin-vsc.override {
accent = accent;
boldKeywords = false;
italicComments = false;
italicKeywords = false;
extraBordersEnabled = false;
workbenchMode = "flat";
bracketMode = "dimmed";
colorOverrides = {
mocha = {
base = "#1c1c2d";
mantle = "#191925";
crust = "#151511";
};
};
customUIColors = {
"statusBar.foreground" = "accent";
};
})
];
userSettings = {
"editor.semanticHighlighting.enabled" = lib.mkForce true;
"terminal.integrated.minimumContrastRatio" = lib.mkForce 1;
"window.titleBarStyle" = lib.mkForce "custom";
"workbench.colorTheme" = lib.mkForce "Catppuccin ${flavorUpper}";
"workbench.iconTheme" = lib.mkForce "catppuccin-${flavor}";
};
};
};
wayland.windowManager.hyprland.extraConfig = ''
exec=hyprctl setcursor catppuccin-${flavor}-${accent}-cursors ${toString thm.cursorSize}
'';
# GTK
gtk = {
enable = true;
theme = {
name = "Catppuccin-${flavorUpper}-${sizeUpper}-${accentUpper}-${gtkTheme}";
package = pkgs.catppuccin-gtk.override {
inherit tweaks;
accents = [ accent ];
variant = flavor;
};
};
cursorTheme = {
name = "catppuccin-${flavor}-${accent}-cursors";
package = pkgs.catppuccin-cursors.${flavor + accentUpper};
};
iconTheme = {
name = "Papirus-${gtkTheme}";
package = pkgs.catppuccin-papirus-folders.override { inherit accent flavor; };
};
font = {
name = "${thm.fonts.main.family}";
size = thm.fontSizes.normal.int;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
home.sessionVariables.GTK_THEME = gtk.theme.name;
};
themes.base16.extraParams = {
iconTheme = lib.mkForce "Papirus-${gtkTheme}";
iconPackage = lib.mkForce (pkgs.catppuccin-papirus-folders.override { inherit accent flavor; });
cursorPackage = lib.mkForce (pkgs.catppuccin-cursors.${flavor + accentUpper});
cursorTheme = lib.mkForce "catppuccin-${flavor}-${accent}-cursors";
cursorSize = lib.mkForce 32;
};
}

View File

@ -9,7 +9,7 @@ in {
home-manager.users.${config.mainuser} = {
home.pointerCursor = {
package = thm.cursorPackage;
name = "Bibata-Modern-TokyoNight";
name = thm.cursorTheme;
size = thm.cursorSize;
gtk.enable = true;
x11.enable = true;

View File

@ -1,69 +1,9 @@
{ pkgs, config, inputs, ... }:
let
thm = config.lib.base16.theme;
in {
nixpkgs.overlays = [
(_self: _super: {
generated-gtk-theme =
pkgs.callPackage "${inputs.rycee}/pkgs/materia-theme" {
configBase16 = {
name = "Generated";
kind = "dark";
colors = {
base00.hex.rgb = "${thm.base00-hex}";
base01.hex.rgb = "${thm.base01-hex}";
base02.hex.rgb = "${thm.base02-hex}";
base03.hex.rgb = "${thm.base03-hex}";
base04.hex.rgb = "${thm.base04-hex}";
base05.hex.rgb = "${thm.base05-hex}";
base06.hex.rgb = "${thm.base06-hex}";
base07.hex.rgb = "${thm.base07-hex}";
base08.hex.rgb = "${thm.base08-hex}";
base09.hex.rgb = "${thm.base09-hex}";
base0A.hex.rgb = "${thm.base0A-hex}";
base0B.hex.rgb = "${thm.base0B-hex}";
base0C.hex.rgb = "${thm.base0C-hex}";
base0D.hex.rgb = "${thm.base0D-hex}";
base0E.hex.rgb = "${thm.base0E-hex}";
base0F.hex.rgb = "${thm.base0F-hex}";
};
};
};
})
];
{ pkgs, config, lib, ... }:
{
gtk.iconCache.enable = true;
programs.dconf.enable = true;
services.dbus.packages = with pkgs; [ dconf gcr ];
home-manager.users.${config.mainuser} = {
gtk = {
enable = true;
iconTheme = {
name = "${thm.iconTheme}";
package = thm.iconPackage;
};
# theme = {
# name = "Generated";
# package = pkgs.generated-gtk-theme;
# };
theme = {
name = "RosePine-Main-BL";
package = pkgs.rosepine-gtk-theme;
};
font = {
name = "${thm.fonts.main.family}";
size = thm.fontSizes.normal.int;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
# home.sessionVariables.GTK_THEME = "Generated";
home.sessionVariables.GTK_THEME = "RosePine-Main-BL";
};
persist.state.homeDirectories = [
".config/dconf"
];
persist.state.homeDirectories = [ ".config/dconf" ];
}

View File

@ -78,8 +78,8 @@ in with config.deviceSpecific; with lib; {
}
decoration {
rounding=0
active_opacity=0.92
inactive_opacity=0.75
active_opacity=0.95
inactive_opacity=0.85
fullscreen_opacity=1.0
drop_shadow=true
shadow_range=12
@ -149,6 +149,7 @@ in with config.deviceSpecific; with lib; {
bind=${modifier},f11,exec,sleep 1 && hyprctl dispatch dpms off
bind=${modifier},f12,exec,sleep 1 && hyprctl dispatch dpms on
bind=${modifier},p,exec,${pkgs.wlogout}/bin/wlogout -b 5
bind=${modifier},escape,exec,${apps.monitor.cmd}
bind=${modifier},w,exec,${apps.dmenu.desktop} -show run
bind=${modifier}CTRL,w,exec,${apps.dmenu.desktop} -show drun -modi drun -show-icons
@ -281,10 +282,11 @@ in with config.deviceSpecific; with lib; {
env=QT_AUTO_SCREEN_SCALE_FACTOR=1
env=QT_WAYLAND_DISABLE_WINDOWDECORATION=1
env=QT_QPA_PLATFORMTHEME=qt5ct
env=GSETTINGS_SCHEMA_DIR=${pkgs.glib.getSchemaPath pkgs.gsettings-desktop-schemas}
'' ''
exec=${importGsettings}
exec-once=${hyprpaper-pkg}/bin/hyprpaper
exec-once=hyprctl setcursor ${config.lib.base16.theme.cursorTheme} ${toString config.lib.base16.theme.cursorSize}
exec=hyprctl setcursor ${config.lib.base16.theme.cursorTheme} ${toString config.lib.base16.theme.cursorSize}
exec-once=${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1
exec-once=${pkgs.wl-clipboard}/bin/wl-paste --type text --watch ${pkgs.cliphist}/bin/cliphist store
exec-once=${pkgs.wl-clipboard}/bin/wl-paste --type image --watch ${pkgs.cliphist}/bin/cliphist store

View File

@ -0,0 +1,41 @@
{ pkgs, lib, config, ... }:
with config.lib.base16.theme; {
services.dbus.packages =
[ pkgs.systemd iconPackage ];
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];
qt.enable = true;
environment.sessionVariables = {
KDEDIRS =
"/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5";
};
home-manager.users.${config.mainuser} = {
qt.style.name = "kvantum";
xdg.configFile."kdeglobals".text = lib.generators.toGitINI {
General = {
# ColorScheme = "Generated";
# Name = "Generated";
fixed = "${fonts.mono.family},${fontSizes.small.str},-1,5,50,0,0,0,0,0";
font = "${fonts.main.family},${fontSizes.small.str},-1,5,50,0,0,0,0,0";
menuFont = "${fonts.main.family},${fontSizes.small.str},-1,5,50,0,0,0,0,0";
shadeSortColumn = true;
smallestReadableFont =
"${fonts.main.family},${fontSizes.minimal.str},-1,5,57,0,0,0,0,0,Medium";
toolBarFont = "${fonts.main.family},${fontSizes.small.str},-1,5,50,0,0,0,0,0";
};
KDE = {
DoubleClickInterval = 400;
ShowDeleteCommand = true;
SingleClick = false;
StartDragDist = 4;
StartDragTime = 500;
WheelScrollLines = 3;
contrast = 4;
# widgetStyle = "Breeze";
};
Icons = { Theme = "${fonts.icon.family}"; };
};
};
}

View File

@ -1,123 +0,0 @@
{ pkgs, lib, config, ... }:
with config.lib.base16.theme; {
services.dbus.packages =
[ pkgs.systemd iconPackage ];
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];
qt.enable = false;
environment.sessionVariables = {
KDEDIRS =
"/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5";
};
home-manager.users.${config.mainuser} = {
xdg.configFile."kdeglobals".text = lib.generators.toGitINI {
"Colors:Button" = {
BackgroundAlternate = base01-hex;
BackgroundNormal = base01-hex;
DecorationFocus = base02-hex;
DecorationHover = base02-hex;
ForegroundActive = base05-hex;
ForegroundInactive = base01-hex;
ForegroundLink = base0D-hex;
ForegroundNegative = base08-hex;
ForegroundNeutral = base09-hex;
ForegroundNormal = base05-hex;
ForegroundPositive = base0B-hex;
ForegroundVisited = base03-hex;
};
"Colors:Complementary" = {
BackgroundAlternate = base01-hex;
BackgroundNormal = base03-hex;
DecorationFocus = base02-hex;
DecorationHover = base02-hex;
ForegroundActive = base09-hex;
ForegroundInactive = base01-hex;
ForegroundLink = base0D-hex;
ForegroundNegative = base08-hex;
ForegroundNeutral = base0A-hex;
ForegroundNormal = base05-hex;
ForegroundPositive = base0B-hex;
ForegroundVisited = base02-hex;
};
"Colors:Selection" = {
BackgroundAlternate = base0D-hex;
BackgroundNormal = base0D-hex;
DecorationFocus = base0D-hex;
DecorationHover = base0D-hex;
ForegroundActive = base05-hex;
ForegroundInactive = base05-hex;
ForegroundLink = base0D-hex;
ForegroundNegative = base08-hex;
ForegroundNeutral = base09-hex;
ForegroundNormal = base05-hex;
ForegroundPositive = base0B-hex;
ForegroundVisited = base02-hex;
};
"Colors:Tooltip" = {
BackgroundAlternate = base01-hex;
BackgroundNormal = base00-hex;
DecorationFocus = base02-hex;
DecorationHover = base02-hex;
ForegroundActive = base02-hex;
ForegroundInactive = base01-hex;
ForegroundLink = base0D-hex;
ForegroundNegative = base08-hex;
ForegroundNeutral = base09-hex;
ForegroundNormal = base05-hex;
ForegroundPositive = base0B-hex;
ForegroundVisited = base03-hex;
};
"Colors:View" = {
BackgroundAlternate = base01-hex;
BackgroundNormal = base00-hex;
DecorationFocus = base02-hex;
DecorationHover = base02-hex;
ForegroundActive = base02-hex;
ForegroundInactive = base01-hex;
ForegroundLink = base0D-hex;
ForegroundNegative = base08-hex;
ForegroundNeutral = base09-hex;
ForegroundNormal = base05-hex;
ForegroundPositive = base0B-hex;
ForegroundVisited = base03-hex;
};
"Colors:Window" = {
BackgroundAlternate = base01-hex;
BackgroundNormal = base00-hex;
DecorationFocus = base02-hex;
DecorationHover = base02-hex;
ForegroundActive = base02-hex;
ForegroundInactive = base01-hex;
ForegroundLink = base0D-hex;
ForegroundNegative = base08-hex;
ForegroundNeutral = base09-hex;
ForegroundNormal = base05-hex;
ForegroundPositive = base0B-hex;
ForegroundVisited = base03-hex;
};
General = {
ColorScheme = "Generated";
Name = "Generated";
fixed = "${fonts.mono.family},${fontSizes.small.str},-1,5,50,0,0,0,0,0";
font = "${fonts.main.family},${fontSizes.small.str},-1,5,50,0,0,0,0,0";
menuFont = "${fonts.main.family},${fontSizes.small.str},-1,5,50,0,0,0,0,0";
shadeSortColumn = true;
smallestReadableFont =
"${fonts.main.family},${fontSizes.minimal.str},-1,5,57,0,0,0,0,0,Medium";
toolBarFont = "${fonts.main.family},${fontSizes.small.str},-1,5,50,0,0,0,0,0";
};
KDE = {
DoubleClickInterval = 400;
ShowDeleteCommand = true;
SingleClick = false;
StartDragDist = 4;
StartDragTime = 500;
WheelScrollLines = 3;
contrast = 4;
widgetStyle = "Breeze";
};
Icons = { Theme = "${fonts.icon.family}"; };
};
};
}

View File

@ -1,97 +1,227 @@
{ config, pkgs, ... }:
{ config, pkgs, lib, ... }:
let
thm = config.lib.base16.theme;
in
with config.deviceSpecific; {
home-manager.users.${config.mainuser}.programs.waybar = {
enable = true;
style = builtins.readFile ./style.css;
# style = builtins.readFile ./style.css;
systemd.enable = true;
systemd.target = "hyprland-session.target";
settings = {
mainBar = {
layer = "top";
position = "top";
margin = "10 10 0 8";
modules-left = [ "wlr/workspaces" ];
modules-right = if isLaptop then [
"cpu"
"disk"
"temperature"
"custom/mem"
"backlight"
# margin = "8 8 0 8";
modules-left = [
"hyprland/workspaces"
# "wireplumber"
] ++ lib.optionals isLaptop [
"battery"
"clock"
"tray"
] else [
"cpu"
"disk"
"temperature"
"custom/mem"
"clock"
"tray"
"backlight"
];
modules-center = [ "hyprland/window" ];
modules-right = [
"tray"
"disk"
"cpu"
# "temperature"
"memory"
"clock"
];
backlight = {
device = "intel_backlight";
format = "{percent}% {icon}";
format-icons = [ "" "" "" "" "" "" "" ];
# min-length = 7;
};
battery = {
interval = 60;
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "<span color=\"#e0af68\">󱐌</span> {capacity}%";
format-icons = [
"<span color=\"#f7768e\"> </span>"
"<span color=\"#f7768e\"> </span>"
"<span color=\"#7aa2f7\"> </span>"
"<span color=\"#7aa2f7\"> </span>"
"<span color=\"#7aa2f7\"> </span>"
];
on-update = "$HOME/.config/waybar/scripts/check_battery.sh";
};
clock = {
format = "{:%a, %d %b, %H:%M}";
tooltip-format = "<tt>{calendar}</tt>";
calendar = {
mode = "month";
mode-mon-col = 4;
weeks-pos = "right";
on-scroll = 1;
on-click-right = "mode";
format = {
months = "<span color='#c0caf5'><b>{}</b></span>";
days = "<span color='#c0caf5'><b>{}</b></span>";
weeks = "<span color='#7dcfff'><b>W{}</b></span>";
weekdays = "<span color='#ff9e64'><b>{}</b></span>";
today = "<span color='#f7768e'><b><u>{}</u></b></span>";
};
};
};
cpu = {
interval = 4;
format = "{usage}%";
format = "<span color=\"#7aa2f7\"></span>{usage}%";
};
disk = {
interval = 60;
format = "{free}";
format = "<span color=\"#7aa2f7\"></span>{free}%";
path = "/home";
};
"custom/separator" = {
format = "|";
interval = "once";
tooltip = false;
"hyprland/window" = {
max-length = 64;
};
"wlr/workspaces" = {
"hyprland/workspaces" = {
format = "{icon}";
on-click = "activate";
disable-scroll = true;
format-icons = {
"10" = "0";
"Messengers" = "Msg";
"Music" = "Mus";
};
};
memory = {
format = "<span color=\"#7aa2f7\"></span>{used}GiB";
interval = 4;
};
temperature = {
# "hwmon-path" = "/sys/class/hwmon/hwmon0/temp1_input";
critical-threshold = 80;
format = "{temperatureC}°C {icon}";
format-icons = [ "" "" "" "" "" ];
tooltip = false;
};
"custom/mem" = {
format = "{} ";
interval = 3;
exec = "${pkgs.procps}/bin/free -h | ${pkgs.gawk}/bin/awk '/Mem:/{printf $7}'";
tooltip = false;
};
backlight = {
device = "intel_backlight";
format = "{percent}% {icon}";
format-icons = [ "" "" "" "" "" "" "" ];
min-length = 7;
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-charging = "{capacity}% ";
format-plugged = "{capacity}% ";
format-alt = "{time} {icon}";
format-icons = [
"" "" "" "" "" "" "" "" "" ""
];
on-update = "$HOME/.config/waybar/scripts/check_battery.sh";
};
clock = {
format = "{:%a, %d %b, %H:%M}";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format = "<span color=\"#7aa2f7\">\uf4f5</span>{temperatureC}°C";
format-critical = "<span color=\"#f7768e\"> </span>{temperatureC}°C";
interval = 4;
};
tray = {
icon-size = 16;
spacing = 0;
icon-size = 12;
spacing = 6;
};
wireplumber = {
scroll-step = 5;
format = "<span color=\"#7aa2f7\">{icon} </span>{volume}%";
format-muted = "<span color=\"#f7768e\">\ueee8</span>Muted";
format-bluetooth = "<span color=\"#7aa2f7\">\uf282 </span>{volume}%";
on-click-right = "blueman-manager";
format-icons = [ "\uf026 " "\uf027 " "\uf028 " ];
on-click = "pavucontrol";
};
};
};
style = let
accent = "lavender";
in ''
@import "catppuccin.css";
* {
font-family:
"${thm.fonts.mono.family}",
feather;
font-weight: 500;
font-size: 11pt;
color: @text;
}
/* main waybar */
window#waybar {
padding: 0;
margin: 0;
/* background: rgba(26, 27, 38, 0.7); */
background: @base;
}
/* when hovering over modules */
tooltip {
background: @base;
border-radius: 5%;
}
#workspaces button {
padding: 2px;
}
/* Sets active workspace to have a solid line on the bottom */
#workspaces button.active {
border-bottom: 2px solid @${accent};
border-radius: 0;
margin-top: 2px;
transition: all 0.5s ease-in-out;
}
/* More workspace stuff for highlighting on hover */
#workspaces button.focused {
color: @subtext0;
}
#workspaces button.urgent {
color: #f7768e;
}
#workspaces button:hover {
background: @crust;
color: @text;
}
/* Sets background, padding, margins, and borders for (all) modules */
#workspaces,
#clock,
#window,
#temperature,
#disk,
#cpu,
#memory,
#network,
#wireplumber,
#tray,
#backlight,
#battery {
/* background: rgba(26, 27, 38, 0); */
background: @base;
padding: 0 10px;
border: 0;
}
#workspaces {
padding-right: 0px;
}
/* Hide window module when not focused on window or empty workspace */
window#waybar.empty #window {
padding: 0;
margin: 0;
opacity: 0;
}
/* Set up rounding to make these modules look like separate pills */
#tray {
color: @${accent};
border-radius: 12px;
margin-right: 4px;
}
#window {
border-radius: 12px;
}
/* close right side of bar */
#temperature {
border-radius: 12px 0 0 12px;
}
/* close left side of bar */
#battery {
border-radius: 0 12px 12px 0;
}
'';
};
}

View File

@ -1,219 +0,0 @@
* {
border: none;
border-radius: 0;
/* `otf-font-awesome` is required to be installed for icons */
font-family: IBM Plex Mono;
font-size: 14px;
min-height: 14px;
}
window#waybar {
background: transparent;
}
window#waybar.hidden {
opacity: 0.2;
}
#workspaces {
margin-right: 8px;
border-radius: 10px;
transition: none;
background: #383c4a;
}
#workspaces button {
transition: none;
color: #7c818c;
background: transparent;
padding: 5px;
font-size: 12px;
}
#workspaces button.persistent {
color: #7c818c;
font-size: 12px;
}
#workspaces button:hover {
transition: none;
box-shadow: inherit;
text-shadow: inherit;
border-radius: inherit;
color: #383c4a;
background: #7c818c;
}
#workspaces button.focused {
color: white;
}
#language {
padding-left: 16px;
padding-right: 8px;
border-radius: 10px 0px 0px 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#keyboard-state {
margin-right: 8px;
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#custom-mail { /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
margin-right: 8px;
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#mode {
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#clock {
padding-left: 16px;
padding-right: 16px;
border-radius: 10px 0px 0px 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#custom-weather {
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#pulseaudio {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none; /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
color: #ffffff;
background: #383c4a;
}
#pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45;
}
#custom-mem {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#temperature {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#temperature.critical {
background-color: #eb4d4b;
}
#backlight {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#disk {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#battery {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#battery.charging {
color: #ffffff;
background-color: #26A65B;
}
#battery.warning:not(.charging) {
background-color: #ffbe61;
color: black;
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#tray {
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#cpu {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}

View File

@ -0,0 +1,96 @@
{ config, lib, ... }: {
home-manager.users.${config.mainuser} = let
inherit (config.home-manager.users.${config.mainuser}.catppuccin) sources flavor accent;
thm = config.lib.base16.theme;
palette = (lib.importJSON "${sources.palette}/palette.json").${flavor}.colors;
in {
programs.wlogout = {
enable = true;
layout = [{
label = "lock";
action = "";
text = "Lock";
} {
label = "reboot";
action = "systemctl reboot";
text = "Reboot";
} {
label = "shutdown";
action = "systemctl poweroff";
text = "Shutdown";
} {
label = "logout";
action = "hyprctl dispatch exit 0";
text = "Logout";
} {
label = "suspend";
action = "systemctl suspend";
text = "Suspend";
}];
style = ''
window {
font-family: "${thm.fonts.mono.family}";
font-size: 18pt;
color: ${palette.text.hex};
background-color: rgba(${toString palette.base.rgb.r}, ${toString palette.base.rgb.g}, ${toString palette.base.rgb.b}, 0.8);
}
button {
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
border: none;
background-color: rgba(${toString palette.base.rgb.r}, ${toString palette.base.rgb.g}, ${toString palette.base.rgb.b}, 0);
color: ${palette.${accent}.hex};
}
button:hover {
background-color: rgba(${toString palette.surface0.rgb.r}, ${toString palette.surface0.rgb.g}, ${toString palette.surface0.rgb.b}, 0.1);
}
button:focus {
background-color: ${palette.${accent}.hex};
color: ${palette.base.hex};
}
#lock {
background-image: image(url("${./lock.png}"));
padding: 35px;
}
#lock:focus {
background-image: image(url("${./lock-hover.png}"));
padding: 35px;
}
#logout {
background-image: image(url("${./logout.png}"));
padding: 30px;
}
#logout:focus {
background-image: image(url("${./logout-hover.png}"));
padding: 30px;
}
#suspend {
background-image: image(url("${./sleep.png}"));
padding: 30px;
}
#suspend:focus {
background-image: image(url("${./sleep-hover.png}"));
padding: 30px;
}
#shutdown {
background-image: image(url("${./power.png}"));
padding: 30px;
}
#shutdown:focus {
background-image: image(url("${./power-hover.png}"));
padding: 30px;
}
#reboot {
background-image: image(url("${./restart.png}"));
padding: 30px;
}
#reboot:focus {
background-image: image(url("${./restart-hover.png}"));
padding: 30px;
}
'';
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -59,6 +59,7 @@
envExtra = ''
SHELL="${pkgs.zsh}/bin/zsh";
ZSHZ_DATA="$HOME/.local/share/zsh/z";
'';
shellAliases = {

View File

@ -14,6 +14,7 @@
email
firefox
gamemode
home-apps
kitty
mangohud
mpv
@ -23,7 +24,6 @@
steam
vscode
waydroid
zathura
# aria2
cursor
@ -40,9 +40,11 @@
proxy
hyprland
waybar
wlogout
xdg
vpn
vscode-server
catppuccin
];
}

16
scripts/persist.sh Executable file
View File

@ -0,0 +1,16 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p rsync ripgrep
rsync -amvxx \
--dry-run \
--no-links \
--exclude '/tmp/*' \
--exclude '/root/*' \
/ /persist \
| rg -v '^skipping|/$'
rsync -amvxx \
--dry-run \
--no-links \
--exclude 'ataraxia/.vscode/*' \
/home/ataraxia /persist/home/ataraxia \
| rg -v '^skipping|/$'

View File

@ -1,8 +1,10 @@
rustic-backups-s3-env: ENC[AES256_GCM,data:XTUTtAmjBiy5mdlwT53Z9IDycs0s069182Emd0M6TSpPScqce3kxoN+hH8vgaOLU0b1jF3d9pkO0PpwfnUr2IkMpTd7ZKHeqHbYzS4gpKFnkQMhDexHLFBrQIfBrTbCGzspl83q5ksU9ENuY+sdkKXBhn99ja2mAFdfOVyNRttVNwKuv5/e8Bh0ySyTkogOgLyttLWo+pqKuvBP96BvSLOiGqfYBMgZU6uncg4YbdmOWPnvnTRPWHwIAyyXOSv56Sw36XfBkCBhZk2fmDRVJyRkuFthkhb6b2LkxhWFofilJupGTaQUHuZ3Efq9+eS5n1zOnudL7Gp7MmaQ4Hz3tQnzML16pJW1UcyT11uvWl8Zz5h+VlwJAfM7VNVaOs2FjEEy5imcUWurhIgRcrKHYc3mKNk5XYuvCI93aX9/LKEyeGQ==,iv:sPwKIYu/RyZQHYmz7aSYFhmx2ZqlH+RHRbdkOHGCa1s=,tag:eD5vRFkwEw4i97UQyRk6Hw==,type:str]
rustic-postgresql-s3-env: ENC[AES256_GCM,data:m0G4G+i3fJo34rUGnQ0HOsA1GlOpLnJXDJltXFM5URUFaK1Jh5pGnOsYAiU2410enKafdf5eneW31j9r2GWmEFOoX89+yLmQxe22YnfLcFfaBdskVeaz/6HY2FK5euwdy70ZPNb05uYaS1QXPABJCS8p2APjx9bcz4MPSGgN6Ed/h7NdEU1FXgEfQZj9cysoVN9Qf3zYP4oqTBFVq11bV1yj0dsBMxHmY92aAdwUJWqjk4w2vi90zYxWNYk5PzNCh7qURtfmfNTHfEy55umbDayWjxZAsNgGOtxUsArUNSIU12GeBx7VCxepbNbDiej9fNnNqYvYnRspscag5w0oHSPa8a/qPY+R/imKqLU15xCG2EfnBm310zPyI9o/lgiU9Ua8z4cfuU5FcKr7ICIr5OdupiWy6aC1KYhkBZVViXEz3A==,iv:Hu9Bbynj5D9k2Rj0NWYZuuHQzcrauGyMmPex+T+VKIg=,tag:IAXAGK//SW890ZBKkUr8gw==,type:str]
rustic-minecraft-s3-env: ENC[AES256_GCM,data:04sIa/w5exYkgUrAiaBuPJ8JaP8pNmAgbbToO54v1jHPCBmcuSLw1ncUi/jqUtJBTvj+8WRYUxe0a0ssPid28N8229yv1IbhDxvoosJj43SEnmbRtgegHLnrtLdd1y6cL6tDj/e2qFgC1LQvnPmkKe9YThyGAc4=,iv:WE1XNQTZGKhw7yN4THL4/gA1CD9oSmJ0TtCtxOcOQbE=,tag:7rHN2i7GGawhHY9ZcjuqIg==,type:str]
rustic-nas-pass: ENC[AES256_GCM,data:uDiQQRxlpBfbwihXDR32aGjP41iZ,iv:qx6FJEllahkP9BPYFFfv9LHnnVTOl6B7Jv9OSfNkPok=,tag:MBUT77ccG/acr/U/X2zrCA==,type:str]
rustic-vps-pass: ENC[AES256_GCM,data:LMdVK6j/TV9JLAxwWUtIfF//nf6r,iv:PjOYcNeLjlRx6uoZo+jr0oA9N60NJNNPloc9fc44raw=,tag:AjOzsfVIhDCb5a5D3yIdUA==,type:str]
rustic-postgresql-pass: ENC[AES256_GCM,data:oUHakvIPSwkNy1lkQ4k14+CWIofO,iv:v3EFeZCkFyeY/ADK8vqYvAD0XDmnQFIq6XGd9B8jvXY=,tag:6+kGWMq+9iVLSf5p/TIp8g==,type:str]
rustic-workstation-pass: ENC[AES256_GCM,data:dVuq75mlHStFO+k97yV0kUUqFtjF,iv:p2ApGtzHO9XUQJnnSyIMs1Cr6ODIt6RnBf2SXNrRbTk=,tag:b8WRap8QUtQrsYXVYdeRUw==,type:str]
rustic-minio-secret-key: ENC[AES256_GCM,data:Jkn0mHcLFWS/euPCYtEF3hXN4Jx8PHZHA3RtZiMshuZdZTv0Y+tHteZB2i27Ka+u,iv:R2FEEhe+EoqFDQYbLJ3hrb+ENVvsP2c++WA0z3QQrxA=,tag:bifjyNyNouUhFGV6SpAg7Q==,type:str]
rclone-s3-sync: ENC[AES256_GCM,data:oBDntYhuThzmImRgpBSsgqDwXs4+wJxAOZKH3vlKfH+9CXYNI1ks92t8Ywr/wltikvXiVbKuztY7Iuqe4Mkl0K9onYYcmrMDqyuLXRV/WPXNaAwyOyFUS17dxcqoyG51T0zzb1l4LH+GTrLw7m7RD7y7XFU/uidAUuBnQHAQpu8xRI/5PLcSaae+KfmoJGpZBX4BawXMHzRKKo462Muw/1FbBQpC0ERvTd34oSke32+Ni3MNdg/nOVyczYIQ+TPNhtgiSNXFJFPaXWMrIh29jhyJv7M2k4nYzNzb3A2miGCxWRDNy7bxZTDeVLgJUZT3KJNyb8BGLhu2v54WSbm01I1pP+//xYSZI0JER4fCZpdGodr2TV6u7YOyVxa1pZ7C7O9T/dd2O9NbgQY1Azc9MhiIXZnT58j72SNvhDNtCloM50R0LYmagCj2alP3Z4W7L+BdtaU58hWFCM2P8EIYbPkz8wK4/i1XARvZU9i+cRWZCoKi+yi0cV2yKOYlFEW0RmO9G3rC6a31YITwfpHhQw9IFuZXwdwZdf4OIuw12BIXfeUQJWqIl4QRSnOSzCggSZngwhoq/r46Oh2Jn9xXuVO6Hlod8pGyxKovO9bGQl3ioIU/KAhKp88k/BDS7YM4HhAEPNjvsSZgRGf21G7Z4ypi6a2grMTGgIKbOA3KEe2CKrSEVq7JRF5m1uAPJ2zrgbBrSwI0qkhGfn+SERMVtyzkIvTQkEQJ/g==,iv:jWhHLIccl1Pgr55xEMd2ED8FS3pvRjnuugMJ0sHnuW4=,tag:upgyBz2AA2zhidFIkcVrpw==,type:str]
sops:
@ -11,8 +13,8 @@ sops:
azure_kv: []
hc_vault: []
age: []
lastmodified: "2024-02-13T18:54:38Z"
mac: ENC[AES256_GCM,data:dfaHOR6j9haR9MofGrfeHpIK9+wXbEYG9O2R8258ifncOPrAFHggHUxdgeX5L7wSQ2IUuTw11FzbFiNSAT0sH9nIXwPLtO1N4MJAzC/XE1e5b2ZIBVTmJAAL3wH0dKpLExA1kMGRrLmTcIGUiGTDwgn86wxlUf92bAA/oycb5cQ=,iv:mwtkiGzOJTobMPLxsGtEIzDjmAR+4Forvg5KFFnmpCk=,tag:fR+8skvaHBKnwZ0tXigodw==,type:str]
lastmodified: "2024-06-08T15:01:54Z"
mac: ENC[AES256_GCM,data:euc66CxC9LHiJYKiMaEWunIZCHd2ZGl1YcFIJWmv2/x1pMRSnQ85yCL5Fpu8crjaayDYGJJVmMBVeU8trmaoqzYE1pWtUSIQo2QligJ1k8T5erdakSwv6keHrxczS1gEkS1Ygl6xieZUY5mcwY1Wyz7ZMeAeiIpIaraSf8Uydu8=,iv:OMGVEmOHnJbFzVpfCtvt3jrw6vP5dCib/HfcKpbSZ7k=,tag:wTtzNCE6BB3S7x2wWNYq1A==,type:str]
pgp:
- created_at: "2024-02-06T20:12:53Z"
enc: |-