Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles
This commit is contained in:
@@ -1,33 +1,6 @@
|
||||
{ config, pkgs, lib, host, secrets, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, hyper, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
bitwarden
|
||||
bitwarden-cli
|
||||
];
|
||||
|
||||
# home.file.".config/Bitwarden CLI/data.json".text = ''
|
||||
# {
|
||||
# "stateVersion": 9,
|
||||
# "global": {
|
||||
# "theme": "system",
|
||||
# "window": {},
|
||||
# "environmentUrls": {
|
||||
# "base": "https://pw.nx2.site",
|
||||
# "api": null,
|
||||
# "identity": null,
|
||||
# "webVault": null,
|
||||
# "icons": null,
|
||||
# "notifications": null,
|
||||
# "events": null,
|
||||
# "keyConnector": null
|
||||
# },
|
||||
# "region": "Self-hosted",
|
||||
# "installedVersion": "2023.12.0"
|
||||
# }
|
||||
# }
|
||||
# '';
|
||||
|
||||
# home.sessionVariables.BW_SESSION = secrets.bitwarden.env.bw-session;
|
||||
|
||||
}
|
||||
|
||||
58
home-modules/calendar-campuszeit-fix.nix
Normal file
58
home-modules/calendar-campuszeit-fix.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
{ pkgs, user, ... }:
|
||||
{
|
||||
home.packages = let
|
||||
u = pkgs.writers.writePython3Bin "nx_fix_campuszeit_python" {
|
||||
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
||||
} /* python */ ''
|
||||
import os
|
||||
import sys
|
||||
|
||||
def replace_campus_timezone(directory):
|
||||
if not os.path.isdir(directory):
|
||||
print(f"Error: {directory} is not a valid directory.")
|
||||
return
|
||||
|
||||
for filename in os.listdir(directory):
|
||||
filepath = os.path.join(directory, filename)
|
||||
if not os.path.isfile(filepath):
|
||||
continue
|
||||
|
||||
with open(filepath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
if 'TZID:Europe/Berlin' in content or 'TZID="Europe/Berlin"' in content:
|
||||
# Remove VTIMEZONE block for CampusNetZeit (optional depending on needs)
|
||||
# Use a regex if multiple VTIMEZONE blocks may exist
|
||||
start_idx = content.find('BEGIN:VTIMEZONE')
|
||||
end_idx = content.find('END:VTIMEZONE', start_idx)
|
||||
if start_idx != -1 and end_idx != -1:
|
||||
content = content[:start_idx] + content[end_idx + len('END:VTIMEZONE\n'):]
|
||||
|
||||
# Replace all TZID references
|
||||
content = content.replace('TZID:Europe/Berlin', 'TZID:Europe/Berlin')
|
||||
content = content.replace('TZID="Europe/Berlin"', 'TZID="Europe/Berlin"')
|
||||
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
|
||||
print(f"Updated time zone in: {filename}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: python replace_timezone.py <directory>")
|
||||
else:
|
||||
replace_campus_timezone(sys.argv[1])
|
||||
'';
|
||||
in [
|
||||
(pkgs.writeShellApplication {
|
||||
name = "nx_fix_campuszeit";
|
||||
text = /*bash*/ ''
|
||||
echo CHANGING OWNERSHIP OF "$(realpath "$1")" RECURSIVELY
|
||||
read -r -p "Continue?"
|
||||
sudo chown -R ${user} "$1"
|
||||
${u}/bin/nx_fix_campuszeit_python "$1"
|
||||
sudo chown -R radicale "$1"
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, user, secrets, domain, ... }: let
|
||||
calendars = [
|
||||
{ pkgs, hyper, secrets, ... }: let
|
||||
calendars = with hyper; [
|
||||
{
|
||||
name = "Preservation";
|
||||
primary = true;
|
||||
@@ -82,10 +82,10 @@ in {
|
||||
inherit primary;
|
||||
remote = {
|
||||
inherit url name;
|
||||
userName = user; # my globally set username
|
||||
userName = hyper.user; # my globally set username
|
||||
};
|
||||
};
|
||||
in lib.attrsets.mergeAttrsList (
|
||||
in pkgs.lib.attrsets.mergeAttrsList (
|
||||
map (calendar: {
|
||||
"${calendar.name}" = transform_caledar_set ( default_set // calendar );
|
||||
}) calendars
|
||||
@@ -93,7 +93,7 @@ in {
|
||||
|
||||
programs.thunderbird.settings = let
|
||||
to_safe_name = name: (builtins.replaceStrings ["."] ["-"]) name;
|
||||
in (lib.attrsets.mergeAttrsList (
|
||||
in (pkgs.lib.attrsets.mergeAttrsList (
|
||||
map (calendar: with ( default_set // calendar ); {
|
||||
"calendar.registry.${to_safe_name calendar.name}.cache.enabled" = true;
|
||||
"calendar.registry.${to_safe_name calendar.name}.calendar-main-default" = primary;
|
||||
@@ -102,11 +102,11 @@ in {
|
||||
"calendar.registry.${to_safe_name calendar.name}.name" = name;
|
||||
"calendar.registry.${to_safe_name calendar.name}.type" = type;
|
||||
"calendar.registry.${to_safe_name calendar.name}.uri" = url;
|
||||
"calendar.registry.${to_safe_name calendar.name}.username" = user;
|
||||
"calendar.registry.${to_safe_name calendar.name}.username" = hyper.user;
|
||||
"calendar.registry.${to_safe_name calendar.name}.readOnly" = read-only;
|
||||
}) calendars
|
||||
) // {
|
||||
"calendar.list.sortOrder" = lib.fold (calendar: acc: calendar.name + " " + acc) "" calendars;
|
||||
"calendar.list.sortOrder" = pkgs.lib.fold (calendar: acc: calendar.name + " " + acc) "" calendars;
|
||||
"calendar.week.start" = 1;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, user, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
programs = {
|
||||
direnv = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, hyper, ... }:
|
||||
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
{ pkgs, lib, host, user, rice, secrets, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, hyper, rice, secrets, ... }:
|
||||
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
thunderbird
|
||||
];
|
||||
|
||||
programs.thunderbird = let
|
||||
inherit (lib.generators) toJSON;
|
||||
inherit (pkgs.lib.generators) toJSON;
|
||||
extensions = toJSON {} {
|
||||
"addon@darkreader.org" = "71d6c69d-55f9-4c56-888c-abdcf6efd73d";
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
profiles = {
|
||||
"${user}" = {
|
||||
"${hyper.user}" = {
|
||||
isDefault = true;
|
||||
settings = with rice.color; {
|
||||
"calendar.alarms.showmissed" = false;
|
||||
|
||||
@@ -1,258 +1,262 @@
|
||||
# { pkgs-unstable, secrets, user, system, inputs, ...}:
|
||||
{ rice, user, ... }:
|
||||
{ pkgs, hyper, rice, ... }:
|
||||
# browser.tabs.allow_transparent_browser
|
||||
# https://www.reddit.com/r/FirefoxCSS/comments/1dqws4b/firefox_128_will_allow_the_main_browser_content/
|
||||
{
|
||||
home.file = with rice.color; let
|
||||
blur = builtins.toString 20;
|
||||
in {
|
||||
".mozilla/firefox/${user}/chrome/userChrome.css".text = /* css */ ''
|
||||
:root{
|
||||
/* Popup panels */
|
||||
--arrowpanel-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--arrowpanel-border-color : ${border} !important;
|
||||
--arrowpanel-color : ${secondary.base} !important;
|
||||
--arrowpanel-dimmed : rgba(${rice.lib.hex-to-rgb-comma-string background},0.4) !important;
|
||||
--arrowpanel-dimmed-further : rgba(${rice.lib.hex-to-rgb-comma-string background},0.6) !important;
|
||||
--arrowpanel-dimmed-even-further : rgba(${rice.lib.hex-to-rgb-comma-string background},0.8) !important;
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
firefox
|
||||
];
|
||||
file = with rice.color; let
|
||||
blur = builtins.toString 20;
|
||||
in {
|
||||
".mozilla/firefox/${hyper.user}/chrome/userChrome.css".text = /* css */ ''
|
||||
:root{
|
||||
/* Popup panels */
|
||||
--arrowpanel-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--arrowpanel-border-color : ${border} !important;
|
||||
--arrowpanel-color : ${secondary.base} !important;
|
||||
--arrowpanel-dimmed : rgba(${rice.lib.hex-to-rgb-comma-string background},0.4) !important;
|
||||
--arrowpanel-dimmed-further : rgba(${rice.lib.hex-to-rgb-comma-string background},0.6) !important;
|
||||
--arrowpanel-dimmed-even-further : rgba(${rice.lib.hex-to-rgb-comma-string background},0.8) !important;
|
||||
|
||||
/* Autocomplete */
|
||||
--autocomplete-popup-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--autocomplete-popup-color : ${foreground} !important;
|
||||
--autocomplete-popup-highlight-background: ${accent.base} !important;
|
||||
--autocomplete-popup-highlight-color : ${foreground} !important;
|
||||
/* Autocomplete */
|
||||
--autocomplete-popup-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--autocomplete-popup-color : ${foreground} !important;
|
||||
--autocomplete-popup-highlight-background: ${accent.base} !important;
|
||||
--autocomplete-popup-highlight-color : ${foreground} !important;
|
||||
|
||||
/* Toolbar background */
|
||||
--toolbar-bgcolor : rgba(${rice.lib.hex-to-rgb-comma-string background},0.4) !important;
|
||||
--toolbar-non-lwt-bgcolor : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-non-lwt-bgimage : none !important;
|
||||
--toolbar-color : ${foreground} !important;
|
||||
/* Toolbar background */
|
||||
--toolbar-bgcolor : rgba(${rice.lib.hex-to-rgb-comma-string background},0.4) !important;
|
||||
--toolbar-non-lwt-bgcolor : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-non-lwt-bgimage : none !important;
|
||||
--toolbar-color : ${foreground} !important;
|
||||
|
||||
/* Tabs */
|
||||
--tab-selected-bgcolor : ${accent.base} !important;
|
||||
--tabs-border-color : ${border} !important;
|
||||
--tab-line-color : ${accent.base} !important;
|
||||
--tab-loader-size : 16px !important;
|
||||
/* Tabs */
|
||||
--tab-selected-bgcolor : ${accent.base} !important;
|
||||
--tabs-border-color : ${border} !important;
|
||||
--tab-line-color : ${accent.base} !important;
|
||||
--tab-loader-size : 16px !important;
|
||||
|
||||
/* Sidebar */
|
||||
--lwt-sidebar-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--lwt-sidebar-text-color : ${foreground} !important;
|
||||
--sidebar-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--sidebar-text-color : ${foreground} !important;
|
||||
--sidebar-border-color : ${border} !important;
|
||||
/* Sidebar */
|
||||
--lwt-sidebar-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--lwt-sidebar-text-color : ${foreground} !important;
|
||||
--sidebar-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--sidebar-text-color : ${foreground} !important;
|
||||
--sidebar-border-color : ${border} !important;
|
||||
|
||||
/* URL bar */
|
||||
--urlbar-popup-url-color : ${foreground} !important;
|
||||
--urlbar-popup-action-color : ${secondary.base} !important;
|
||||
--toolbar-field-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-field-focus-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-field-color : ${accent.base} !important;
|
||||
--toolbar-field-focus-color : ${foreground} !important;
|
||||
--toolbar-field-focus-border-color : ${accent.base} !important;
|
||||
/* URL bar */
|
||||
--urlbar-popup-url-color : ${foreground} !important;
|
||||
--urlbar-popup-action-color : ${secondary.base} !important;
|
||||
--toolbar-field-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-field-focus-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-field-color : ${accent.base} !important;
|
||||
--toolbar-field-focus-color : ${foreground} !important;
|
||||
--toolbar-field-focus-border-color : ${accent.base} !important;
|
||||
|
||||
/* Buttons */
|
||||
--toolbarbutton-icon-fill : ${foreground} !important;
|
||||
--toolbarbutton-hover-background : rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.2) !important;
|
||||
--toolbarbutton-active-background : rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.4) !important;
|
||||
/* Buttons */
|
||||
--toolbarbutton-icon-fill : ${foreground} !important;
|
||||
--toolbarbutton-hover-background : rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.2) !important;
|
||||
--toolbarbutton-active-background : rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.4) !important;
|
||||
|
||||
/* Notification and panel */
|
||||
--panel-disabled-color : rgba(${rice.lib.hex-to-rgb-comma-string foreground},0.3) !important;
|
||||
--panel-separator-color : ${border} !important;
|
||||
/* Notification and panel */
|
||||
--panel-disabled-color : rgba(${rice.lib.hex-to-rgb-comma-string foreground},0.3) !important;
|
||||
--panel-separator-color : ${border} !important;
|
||||
|
||||
/* New tab page */
|
||||
--newtab-background-color : ${background} !important;
|
||||
--newtab-background-color-secondary : ${background} !important;
|
||||
--newtab-text-primary-color : ${foreground} !important;
|
||||
--newtab-text-secondary-color : ${secondary.base} !important;
|
||||
--newtab-search-icon-color : ${accent.base} !important;
|
||||
/* New tab page */
|
||||
--newtab-background-color : ${background} !important;
|
||||
--newtab-background-color-secondary : ${background} !important;
|
||||
--newtab-text-primary-color : ${foreground} !important;
|
||||
--newtab-text-secondary-color : ${secondary.base} !important;
|
||||
--newtab-search-icon-color : ${accent.base} !important;
|
||||
|
||||
--tabpanel-background-color : transparent !important;
|
||||
background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
}
|
||||
.tabbrowser-tab[selected="true"] {
|
||||
color: ${background} !important;
|
||||
}
|
||||
--tabpanel-background-color : transparent !important;
|
||||
background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
}
|
||||
.tabbrowser-tab[selected="true"] {
|
||||
color: ${background} !important;
|
||||
}
|
||||
|
||||
#appcontent {
|
||||
background: transparent !important;
|
||||
}
|
||||
#navigator-toolbox {
|
||||
--tabs-border-color: transparent !important;
|
||||
}
|
||||
#toolbar-menubar, #TabsToolbar, #PersonalToolbar, #navigator-toolbox, #sidebar-box {
|
||||
background-color: transparent !important;
|
||||
-moz-appearance: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
window, #nav-bar{
|
||||
background-color: transparent !important;
|
||||
-moz-appearance: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
'';
|
||||
|
||||
".mozilla/firefox/${user}/chrome/userContent.css".text = /* css */ ''
|
||||
/* Removes the white loading page */
|
||||
/* url(about:newtab), url(about:home) */
|
||||
@-moz-document url(about:blank) {
|
||||
html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay {
|
||||
background: ${background} !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Sets up minimal incognito scrollbar */
|
||||
@-moz-document url(about:privatebrowsing) {
|
||||
:root{
|
||||
scrollbar-width: thin !important;
|
||||
scrollbar-color: rgb(161, 161, 161) transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* new-tab */
|
||||
@-moz-document url-prefix(about:home), url-prefix(about:newtab) {
|
||||
:root{
|
||||
--newtab-background-color-secondary: ${background} !important;
|
||||
}
|
||||
body, html {
|
||||
#appcontent {
|
||||
background: transparent !important;
|
||||
}
|
||||
#navigator-toolbox {
|
||||
--tabs-border-color: transparent !important;
|
||||
}
|
||||
#toolbar-menubar, #TabsToolbar, #PersonalToolbar, #navigator-toolbox, #sidebar-box {
|
||||
background-color: transparent !important;
|
||||
-moz-appearance: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
.tile, .search-handoff-button {
|
||||
border: ${builtins.toString rice.border-width}px solid ${border} !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(reddit.com) {
|
||||
header {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(${blur}px);
|
||||
}
|
||||
body, html, .bg-neutral-background, .threadline, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar, comment-body-header, shreddit-comment-tree{
|
||||
window, #nav-bar{
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
-moz-appearance: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
'';
|
||||
|
||||
@-moz-document domain(reddit.com) {
|
||||
header {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
}
|
||||
body, html, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar{
|
||||
background-color: transparent !important;
|
||||
".mozilla/firefox/${hyper.user}/chrome/userContent.css".text = /* css */ ''
|
||||
/* Removes the white loading page */
|
||||
/* url(about:newtab), url(about:home) */
|
||||
@-moz-document url(about:blank) {
|
||||
html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay {
|
||||
background: ${background} !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(google.com) {
|
||||
.sfbg {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(${blur}px);
|
||||
/* Sets up minimal incognito scrollbar */
|
||||
@-moz-document url(about:privatebrowsing) {
|
||||
:root{
|
||||
scrollbar-width: thin !important;
|
||||
scrollbar-color: rgb(161, 161, 161) transparent !important;
|
||||
}
|
||||
}
|
||||
body, html, div#search > * {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
|
||||
/* new-tab */
|
||||
@-moz-document url-prefix(about:home), url-prefix(about:newtab) {
|
||||
:root{
|
||||
--newtab-background-color-secondary: ${background} !important;
|
||||
}
|
||||
body, html {
|
||||
background: transparent !important;
|
||||
}
|
||||
.tile, .search-handoff-button {
|
||||
border: ${builtins.toString rice.border-width}px solid ${border} !important;
|
||||
}
|
||||
}
|
||||
.g, .appbar {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
|
||||
@-moz-document domain(reddit.com) {
|
||||
header {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(${blur}px);
|
||||
}
|
||||
body, html, .bg-neutral-background, .threadline, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar, comment-body-header, shreddit-comment-tree{
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
div#rso {
|
||||
* {
|
||||
|
||||
@-moz-document domain(reddit.com) {
|
||||
header {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
}
|
||||
body, html, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar{
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(google.com) {
|
||||
.sfbg {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(${blur}px);
|
||||
}
|
||||
body, html, div#search > * {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
}
|
||||
div#cnt > div {
|
||||
.g, .appbar {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
div#rso {
|
||||
* {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
}
|
||||
div#cnt > div {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root .theme-system {
|
||||
--color-bg: transtparent !important;
|
||||
--color-text: ${rice.color.foreground}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root .theme-system {
|
||||
--color-bg: transtparent !important;
|
||||
--color-text: ${rice.color.foreground}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(developer.mozilla.org) {
|
||||
html, body {
|
||||
background-color: transparent !important;
|
||||
@-moz-document domain(developer.mozilla.org) {
|
||||
html, body {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.top-navigation, .article-actions-container {
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px);
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
}
|
||||
.top-navigation, .article-actions-container {
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px);
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(github.com) {
|
||||
body, html, header, #repository-container-header, .bgColor-muted, section {
|
||||
background-color: transparent !important;
|
||||
@-moz-document domain(github.com) {
|
||||
body, html, header, #repository-container-header, .bgColor-muted, section {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(mynixos.com) {
|
||||
body, html {
|
||||
background-color: transparent !important;
|
||||
@-moz-document domain(mynixos.com) {
|
||||
body, html {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
header, footer {
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px);
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
}
|
||||
header, footer {
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px);
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(moodle.informatik.tu-darmstadt.de) {
|
||||
body, html , .main-inner, .main-inner * {
|
||||
background-color: transparent !important;
|
||||
@-moz-document domain(moodle.informatik.tu-darmstadt.de) {
|
||||
body, html , .main-inner, .main-inner * {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.bg-primary {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.5) !important!
|
||||
}
|
||||
}
|
||||
.bg-primary {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.5) !important!
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document url-prefix("https://nx2.site/") {
|
||||
html {
|
||||
background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important;
|
||||
background-repeat: repeat !important;
|
||||
background-size: 2vmin 2vmin !important;
|
||||
@-moz-document url-prefix("https://nx2.site/") {
|
||||
html {
|
||||
background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important;
|
||||
background-repeat: repeat !important;
|
||||
background-size: 2vmin 2vmin !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document url-prefix("pw.nx2.site") {
|
||||
html {
|
||||
background: black;
|
||||
@-moz-document url-prefix("pw.nx2.site") {
|
||||
html {
|
||||
background: black;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document url-prefix("pw.nx2.site") {
|
||||
html {
|
||||
background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important;
|
||||
background-repeat: repeat !important;
|
||||
background-size: 2vmin 2vmin !important;
|
||||
}
|
||||
body, .tw-bg-background-alt3, main, .card-header, .card-body, .modal-body {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.modal-open, .modal-header, form.modal-content, .modal-footer {
|
||||
background-color: rgba(0,0,0,0.8) !important;
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
.cdk-virtual-scroll-content-wrapper, .card, .tw-bg-background, .modal-content {
|
||||
background-color: rgba(0,0,0,0.8) !important;
|
||||
border-radius: 10px !important;
|
||||
border: ${toString rice.border-width}px solid ${border} !important;
|
||||
}
|
||||
}
|
||||
@-moz-document url-prefix("pw.nx2.site") {
|
||||
html {
|
||||
background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important;
|
||||
background-repeat: repeat !important;
|
||||
background-size: 2vmin 2vmin !important;
|
||||
}
|
||||
body, .tw-bg-background-alt3, main, .card-header, .card-body, .modal-body {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.modal-open, .modal-header, form.modal-content, .modal-footer {
|
||||
background-color: rgba(0,0,0,0.8) !important;
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
.cdk-virtual-scroll-content-wrapper, .card, .tw-bg-background, .modal-content {
|
||||
background-color: rgba(0,0,0,0.8) !important;
|
||||
border-radius: 10px !important;
|
||||
border: ${toString rice.border-width}px solid ${border} !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(chatgpt.com) {
|
||||
body, html , .bg-token-sidebar-surface-primary {
|
||||
background-color: transparent !important;
|
||||
@-moz-document domain(chatgpt.com) {
|
||||
body, html , .bg-token-sidebar-surface-primary {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.bg-token-main-surface-primary {
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px) !important;
|
||||
border-radius: ${builtins.toString rice.rounding}px !important;
|
||||
}
|
||||
}
|
||||
.bg-token-main-surface-primary {
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px) !important;
|
||||
border-radius: ${builtins.toString rice.rounding}px !important;
|
||||
}
|
||||
}
|
||||
'';
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
⠀⠀⠀⠀⠀⣰⣿⣿⣿⡄⠉⠉⢻⣿⣏⠉⠉⠀⠀⠀ TFM
|
||||
⠀⠀⠀⠀⠰⣿⠟⠀⢻⣿⣆⠀⠀⠻⣿⠆⠀⠀⠀⠀ PROMPT
|
||||
|
||||
" | lolcat --force)
|
||||
" | lolcat --force 2> /dev/null)
|
||||
|
||||
msg="
|
||||
$(echo -e "$logo" | sed -n 3p): $(cat /etc/*-release | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev)
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{ pkgs-unstable, pkgs, lib, host, ... }:
|
||||
# lib.mkIf (host == "NxNORTH" || host == "NxACE")
|
||||
lib.mkIf (host == "NxNORTH")
|
||||
{ pkgs, hyper, ... }:
|
||||
pkgs.lib.mkIf (hyper.host == "NxNORTH")
|
||||
{
|
||||
home = {
|
||||
packages = (with pkgs-unstable; [
|
||||
packages = (with pkgs.unstable; [
|
||||
protonup
|
||||
mangohud
|
||||
|
||||
@@ -11,7 +10,7 @@ lib.mkIf (host == "NxNORTH")
|
||||
|
||||
# heroic
|
||||
|
||||
mindustry-wayland
|
||||
# mindustry-wayland
|
||||
]) ++ [ pkgs.heroic ];
|
||||
sessionVariables = {
|
||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host == "NxXPS")
|
||||
{ pkgs, hyper, ... }:
|
||||
pkgs.lib.mkIf (hyper.host == "NxXPS")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
libinput-gestures
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, rice, inputs, system, ... }:
|
||||
{ config, rice, hyper, inputs, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = [ inputs.ghostty.packages.${system}.default ];
|
||||
packages = [ inputs.ghostty.packages.${hyper.system}.default ];
|
||||
file."${config.xdg.configHome}/ghostty/config".text = with rice.color; /* ini */ ''
|
||||
font-family="${rice.font.code.name}"
|
||||
clipboard-read=allow
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ pkgs-latest, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs-latest; [
|
||||
home.packages = with pkgs; [
|
||||
# (gimp-with-plugins.override {
|
||||
# plugins = with gimpPlugins; [ bimp ];
|
||||
# })
|
||||
|
||||
@@ -1,42 +1,15 @@
|
||||
{ pkgs, rice, ... }:
|
||||
{ pkgs, hyper, rice, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
git
|
||||
delta
|
||||
|
||||
(pkgs.writeShellScriptBin "git_monitor" ''
|
||||
#!/bin/bash
|
||||
|
||||
# List of directories to check
|
||||
directories=(
|
||||
"$HOME/nix-dots"
|
||||
"$HOME/obsidian-vault"
|
||||
"$HOME/Pictures/wallpapers"
|
||||
)
|
||||
echo ""
|
||||
for dir in "''${directories[@]}"; do
|
||||
if [ -d "$dir" ]; then
|
||||
cd "$dir" || { echo "Cannot change directory to $dir"; exit 1; }
|
||||
echo "$(echo $dir | rev | cut -f 1 -d'/' | rev):"
|
||||
if [[ $* == *--fetch* ]]; then
|
||||
git fetch
|
||||
fi
|
||||
gst
|
||||
echo ""
|
||||
cd - > /dev/null || { echo "Cannot change back to the original directory"; exit 1; }
|
||||
else
|
||||
echo "Directory $dir does not exist."
|
||||
fi
|
||||
done
|
||||
'')
|
||||
|
||||
(writeShellScriptBin "gst" "awk -vOFS='' 'NR==FNR {all[i++] = $0; difffiles[$1] = $0; next;} ! ($2 in difffiles) {print; next;} {gsub($2, difffiles[$2]); print;} END {if (NR != FNR) {exit;} for (i in all) {print all[i];}}' <(git diff --color --stat=$(($(tput cols) - 3)) HEAD | sed '$d; s/^ //') <(git -c color.status=always status -sb)")
|
||||
];
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = pkgs.gitFull;
|
||||
userName = ''Lennart J. Kurzweg (Nx2)'';
|
||||
userEmail = "git@nx2.site";
|
||||
userEmail = "git@${hyper.domain}";
|
||||
delta = {
|
||||
enable = true;
|
||||
options = {
|
||||
@@ -46,6 +19,14 @@
|
||||
whitespace-error-style = "22 reverse";
|
||||
};
|
||||
};
|
||||
extraConfig = {
|
||||
credential = {
|
||||
"https://git.da.dicos.de".username = pkgs.lib.mkIf (hyper.host =="NxWSL") "lkurzweg";
|
||||
"https://git.da.dicos.de".password = pkgs.lib.mkIf (hyper.host =="NxWSL") "Test";
|
||||
};
|
||||
url."ssh://git@git.da.dicos.de/".insteadOf = pkgs.lib.mkIf (hyper.host =="NxWSL") "https://git.da.dicos.de/";
|
||||
pull.rebase = false; # true
|
||||
};
|
||||
};
|
||||
programs.lazygit = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# there also is a system module
|
||||
home.packages = (with pkgs; [
|
||||
home.packages = with pkgs; [
|
||||
gnupg
|
||||
gpg-tui
|
||||
]) ++ ( with pkgs-unstable; [
|
||||
pinentry-all
|
||||
]);
|
||||
];
|
||||
|
||||
# services.pcscd.enable = true;
|
||||
services.gpg-agent = let
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, pkgs-unstable, lib, rice, ... }:
|
||||
{ pkgs, hyper, rice, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
@@ -17,10 +17,8 @@
|
||||
vale-ls # style-checker lsp (needs vale)
|
||||
ltex-ls # Ltex (language tool)
|
||||
vscode-langservers-extracted
|
||||
] ++ (with pkgs-unstable; [
|
||||
bash-language-server
|
||||
helix
|
||||
]);
|
||||
];
|
||||
sessionVariables = {
|
||||
EDITOR = "hx";
|
||||
VISUAL = "hx";
|
||||
@@ -29,7 +27,7 @@
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
package = pkgs-unstable.helix;
|
||||
package = pkgs.unstable.helix;
|
||||
settings = {
|
||||
# theme = "base16_terminal";
|
||||
theme = "base16";
|
||||
@@ -52,7 +50,7 @@
|
||||
preview-completion-insert = true;
|
||||
completion-trigger-len = 1;
|
||||
auto-info = true;
|
||||
true-color = false; # is detected automatically if set to false
|
||||
true-color = true; # is detected automatically if set to false
|
||||
undercurl = false; # is detected automatically if set to false
|
||||
rulers = [];
|
||||
bufferline = "always";
|
||||
@@ -273,7 +271,7 @@
|
||||
command = "nixd";
|
||||
};
|
||||
"style-check" = {
|
||||
command = lib.getExe pkgs.vale-ls;
|
||||
command = pkgs.lib.getExe pkgs.vale-ls;
|
||||
};
|
||||
"language-tool" = {
|
||||
command = "${pkgs.ltex-ls}/bin/ltex-ls";
|
||||
@@ -289,7 +287,7 @@
|
||||
];
|
||||
};
|
||||
"llm" = {
|
||||
command = lib.getExe pkgs.helix-gpt;
|
||||
command = pkgs.lib.getExe pkgs.helix-gpt;
|
||||
args = [
|
||||
"--handler"
|
||||
"ollama"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{config, pkgs, pkgs-unstable, inputs, host, user, nvidia, rice, lib, ... }:
|
||||
{ config, pkgs, hyper, inputs, rice, ... }:
|
||||
let
|
||||
animation-speed = "5";
|
||||
transparency = builtins.toString rice.transparency;
|
||||
@@ -83,10 +83,10 @@ in {
|
||||
|
||||
settings = {
|
||||
monitor =
|
||||
if host == "NxXPS" then (with monitors.xps; [
|
||||
if hyper.host == "NxXPS" then (with monitors.xps; [
|
||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||
"${second.name}, ${second.resolution}, ${second.position}, ${second.scale}"
|
||||
]) else (if host == "NxNORTH" then (with monitors.north; [
|
||||
]) else (if hyper.host == "NxNORTH" then (with monitors.north; [
|
||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||
"${left.name}, ${left.resolution}, ${left.position}, ${left.scale}"
|
||||
# "${right.name}, ${right.resolution}, ${right.position}, ${right.scale}"
|
||||
@@ -95,10 +95,10 @@ in {
|
||||
]));
|
||||
|
||||
workspace = let
|
||||
d1 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||
d2 = if host == "NxXPS" then monitors.xps.second.name else (if host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
|
||||
d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||
# d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
|
||||
d1 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||
d2 = if hyper.host == "NxXPS" then monitors.xps.second.name else (if hyper.host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
|
||||
d3 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||
# d3 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.hyper.host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
|
||||
compact = "gapsin:0, gapsout:0, bordersize:1, rounding:false";
|
||||
in [
|
||||
"11, monitor:${d1}, default:true"
|
||||
@@ -122,7 +122,7 @@ in {
|
||||
"28, monitor:${d2}"
|
||||
"29, monitor:${d2}"
|
||||
"20, monitor:${d2}"
|
||||
"31, monitor:${d3}, default:${let x = if host == "NxNORTH" then "true" else "false"; in x}"
|
||||
"31, monitor:${d3}, default:${let x = if hyper.host == "NxNORTH" then "true" else "false"; in x}"
|
||||
"32, monitor:${d3}"
|
||||
"33, monitor:${d3}"
|
||||
"34, monitor:${d3}"
|
||||
@@ -143,7 +143,7 @@ in {
|
||||
# };
|
||||
|
||||
|
||||
env = if nvidia.enable == true then [
|
||||
env = if hyper.nvidia.enable == true then [
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"GBM_BACKEND,nvidia-drm"
|
||||
@@ -209,7 +209,7 @@ in {
|
||||
# bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o
|
||||
# bezier = "myBezier, 0.83, 0, 0.17, 1"; # io
|
||||
bezier = "myBezier, 0.33, 1, 0.68, 1";
|
||||
animation = let direction = if host == "NxXPS" then "slide" else "slidevert"; in [
|
||||
animation = let direction = if hyper.host == "NxXPS" then "slide" else "slidevert"; in [
|
||||
"windows, 1, ${animation-speed}, myBezier, slide"
|
||||
"border, 1, ${animation-speed}, myBezier"
|
||||
"fade, 1, ${animation-speed}, myBezier"
|
||||
@@ -409,8 +409,7 @@ in {
|
||||
# "SUPER SHIFT, T, exec, alacritty -e sh -c "ssh nxace""
|
||||
"SUPER, T, exec, SESSION_FROM_DE=TRUE ${terminal}"
|
||||
"SUPER SHIFT, T, exec, ${terminal-exec}'ssh nxace'"
|
||||
"SUPER, Z, exec, waybar_mode set ' '"
|
||||
"SUPER, Z, submap, tuda"
|
||||
"SUPER, Z, exec, zathura"
|
||||
"SUPER, U, exec, [tile] thunderbird "
|
||||
"SUPER, I, exec, ${terminal-exec}'hx ~/nix-dots/ && fish'"
|
||||
"SUPER SHIFT, I, exec, ${terminal-exec}'nh home switch || read'"
|
||||
@@ -428,7 +427,7 @@ in {
|
||||
"SUPER, A, execr, waybar_mode set ' '"
|
||||
"SUPER, A, submap, scrL"
|
||||
"SUPER, S, exec, spotify"
|
||||
"SUPER, D, exec, vesktop"
|
||||
"SUPER, D, exec, vesktop --disable-gpu-compositing"
|
||||
"SUPER, F, fullscreen"
|
||||
# "SUPER, G,"
|
||||
"SUPER, H, movefocus, l"
|
||||
@@ -564,8 +563,12 @@ in {
|
||||
${action_simple { key = "X"; cmd = "exec,firefox https://nx2.site";}}
|
||||
${action_simple { key = "Y"; cmd = "exec,firefox https://youtube.com";}}
|
||||
${action_simple { key = "P"; cmd = "exec,firefox https://pw.nx2.site";}}
|
||||
bind = , Escape, exec, waybar_mode unset
|
||||
bind = , Escape, submap, reset
|
||||
${action_simple { key = "P"; cmd = "exec,firefox https://pw.nx2.site";}}
|
||||
bind=,Z,exec,waybar_mode set ' '
|
||||
bind=,Z,submap,tuda
|
||||
bind=,Z,submap,reset
|
||||
bind=,Escape,exec,waybar_mode unset
|
||||
bind=,Escape,submap,reset
|
||||
submap = reset
|
||||
|
||||
|
||||
@@ -588,7 +591,7 @@ in {
|
||||
submap = color
|
||||
${action_simple { key = "W"; cmd = ''exec,swww query | sed -n 1p | sed -E 's-.*image: (.*)-"\1"-g' | xargs change_colors_json img && notify-send 'change_colors_json img successfull' ''; }}
|
||||
${action_simple { key = "M"; cmd = ''exec,change_colors_json manual && notify-send 'change_colors_json manual successfull' ''; }}
|
||||
${action_simple { key = "D"; cmd = ''exec,firefox /home/${user}/.config/color-pallete.html''; }}
|
||||
${action_simple { key = "D"; cmd = ''exec,firefox ${hyper.home}/.config/color-pallete.html''; }}
|
||||
bind = , Escape, execr, waybar_mode unset
|
||||
bind = , Escape, submap, reset
|
||||
submap = reset
|
||||
@@ -606,7 +609,7 @@ in {
|
||||
};
|
||||
|
||||
home.file = let
|
||||
m = if host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
|
||||
m = if hyper.host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
|
||||
in {
|
||||
".config/hypr/hyprlock.conf".text = ''
|
||||
background {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ config, pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, hyper, ... }:
|
||||
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
texlab # LSP
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
home.packages = with pkgs; [ libnotify ];
|
||||
services.mako = with rice; {
|
||||
enable = true;
|
||||
defaultTimeout = 10000; # in ms
|
||||
backgroundColor = color.background;
|
||||
textColor = color.foreground;
|
||||
borderColor = color.border;
|
||||
borderSize = border-width;
|
||||
font = font.code.name;
|
||||
borderRadius = rounding;
|
||||
anchor = "top-right";
|
||||
margin = builtins.toString (gap-size * 2) ;
|
||||
settings = {
|
||||
defaultTimeout = 10000; # in ms
|
||||
backgroundColor = color.background;
|
||||
textColor = color.foreground;
|
||||
borderColor = color.border;
|
||||
borderSize = border-width;
|
||||
font = font.code.name;
|
||||
borderRadius = rounding;
|
||||
anchor = "top-right";
|
||||
margin = builtins.toString (gap-size * 2) ;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, host, ... }:
|
||||
{ pkgs, hyper, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# cinny-desktop
|
||||
@@ -79,7 +79,7 @@
|
||||
nx2site.ssl_verify = on
|
||||
nx2site.username = "nx2"
|
||||
nx2site.password = "''${sec.data.matrix_nx2site_password}"
|
||||
nx2site.device_name = "Weechat@${host}"
|
||||
nx2site.device_name = "Weechat@${hyper.host}"
|
||||
nx2site.autoreconnect_delay = 10
|
||||
nx2site.sso_helper_listening_port = 0
|
||||
'';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{ config, pkgs-unstable, ... }:
|
||||
{ pkgs, hyper, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs-unstable; [
|
||||
packages = with pkgs; [
|
||||
nh
|
||||
nix-output-monitor
|
||||
nvd
|
||||
];
|
||||
sessionVariables = {
|
||||
FLAKE = "${config.home.homeDirectory}/nix-dots";
|
||||
NH_FLAKE = "${hyper.home}/nix-dots";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, nvidia, ... }:
|
||||
lib.mkIf (nvidia.enable == true)
|
||||
{ pkgs, hyper, ... }:
|
||||
pkgs.lib.mkIf (hyper.nvidia.enable == true)
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, hyper, ... }:
|
||||
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
# home.packages = with pkgs; [
|
||||
# obs-studio
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ config, pkgs, lib, user, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
libreoffice
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
ollama
|
||||
(writers.writePython3Bin "ooo" {
|
||||
libraries = [ pkgs.python3Packages.ollama ];
|
||||
flakeIgnore = [ "E501" "E305" "E701" "E704" "E302" "E114" "F841" "E121" ];
|
||||
|
||||
38
home-modules/pkgs-list/shell.nix
Normal file
38
home-modules/pkgs-list/shell.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
browsh
|
||||
cmake
|
||||
dig
|
||||
du-dust
|
||||
exiftool
|
||||
eza
|
||||
ffmpeg
|
||||
figlet
|
||||
fzf
|
||||
glib
|
||||
glow
|
||||
gnumake
|
||||
htop
|
||||
imagemagick
|
||||
jq
|
||||
lolcat
|
||||
lynx
|
||||
mediainfo
|
||||
mpv
|
||||
neofetch
|
||||
pdfgrep
|
||||
pipes
|
||||
pv
|
||||
reflex
|
||||
ripgrep
|
||||
screen
|
||||
speedtest-go
|
||||
sssnake
|
||||
systemctl-tui
|
||||
tldr
|
||||
w3m
|
||||
yt-dlp
|
||||
];
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, host, secrets, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, hyper, secrets, ... }:
|
||||
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.remmina
|
||||
@@ -7,7 +7,7 @@ lib.mkIf (host != "NxACE")
|
||||
|
||||
(pkgs.writeShellScriptBin "connect_to_pnx" ''
|
||||
pushd ~/.vpn/
|
||||
sudo openvpn --config /home/nx2/.vpn/ljk-pnx.ovpn --auth-user-pass ~/.vpn/ljk-pnx-pass.txt #gets put there by home-manager
|
||||
sudo openvpn --config ${hyper.home}/.vpn/ljk-pnx.ovpn --auth-user-pass ~/.vpn/ljk-pnx-pass.txt #gets put there by home-manager
|
||||
popd
|
||||
'')
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
{ pkgs, pkgs-unstable, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, hyper, ... }:
|
||||
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
erlang
|
||||
rebar3
|
||||
] ++ (with pkgs-unstable; [
|
||||
gleam
|
||||
]);
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
nodejs
|
||||
|
||||
@@ -3,8 +3,6 @@ let
|
||||
my-sent = pkgs.sent.override {
|
||||
patches = [
|
||||
./sent.patch
|
||||
# /home/${user}/.local/share/sent.patch
|
||||
# (builtins.toFile "/home/${user}/
|
||||
];
|
||||
};
|
||||
in
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ user, inputs, ... }:
|
||||
{ hyper, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
sops = {
|
||||
# age.keyFile = "/home/${user}/.config/sops/age/keys.txt";
|
||||
gnupg.home = "/home/${user}/.gnupg";
|
||||
gnupg.home = "${hyper.home}/.gnupg";
|
||||
defaultSopsFile = ../sops-secrets.yaml;
|
||||
|
||||
# %r is $XDG_RUNTIME_DIR
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
{ pkgs, domain, ... }:
|
||||
{ pkgs, hyper, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [ sshfs ];
|
||||
file.".ssh/config".text = ''
|
||||
HOST nxace
|
||||
HostName ssh.${domain}
|
||||
User nx2
|
||||
HostName ssh.${hyper.domain}
|
||||
User ${hyper.user}
|
||||
Port 50022
|
||||
|
||||
HOST nxacel
|
||||
HostName 10.0.1.1
|
||||
User nx2
|
||||
User ${hyper.user}
|
||||
Port 50022
|
||||
|
||||
HOST nxrpil
|
||||
HostName 10.0.1.31
|
||||
User nx2
|
||||
User ${hyper.user}
|
||||
Port 22
|
||||
|
||||
HOST nxgit
|
||||
HostName ssh.${domain}
|
||||
HostName ssh.${hyper.domain}
|
||||
User git
|
||||
Port 50022
|
||||
'';
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
{ lib, rice, ... }:
|
||||
{ pkgs, rice, ... }:
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
package = pkgs.starship;
|
||||
# enableBashIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
settings = with rice.color; {
|
||||
add_newline = false;
|
||||
format = lib.strings.concatMapStrings (x: "$" + x) [
|
||||
format = pkgs.lib.strings.concatMapStrings (x: "$" + x) [
|
||||
"jobs"
|
||||
"battery"
|
||||
"username"
|
||||
@@ -154,5 +155,5 @@
|
||||
vlang.format = "[\\[$symbol($version)\\]](fg:${foreground})";
|
||||
zig.format = "[\\[$symbol($version)\\]](fg:${foreground})";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, lib, user, ... }:
|
||||
lib.mkIf (user != "tv")
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
(writeShellApplication {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ config, pkgs, lib, host, ... }:
|
||||
lib.mkIf (host == "NxNORTH")
|
||||
{ pkgs, hyper, ... }:
|
||||
pkgs.lib.mkIf (hyper.host == "NxNORTH")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
virt-manager
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ config, pkgs, lib, user, host, rice, allowed, ... }:
|
||||
{ config, pkgs, hyper, rice, ... }:
|
||||
{
|
||||
config = lib.mkIf (host != "NxACE") {
|
||||
config = pkgs.lib.mkIf (hyper.host != "NxACE") {
|
||||
home.packages = [
|
||||
pkgs.vscodium
|
||||
pkgs.nixpkgs-fmt
|
||||
@@ -8,108 +8,97 @@
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
jnoortheen.nix-ide
|
||||
ms-python.python
|
||||
ms-python.black-formatter
|
||||
redhat.vscode-yaml
|
||||
redhat.vscode-xml
|
||||
ms-python.python
|
||||
mhutchie.git-graph
|
||||
github.vscode-pull-request-github
|
||||
esbenp.prettier-vscode
|
||||
gencer.html-slim-scss-css-class-completion
|
||||
donjayamanne.githistory
|
||||
mads-hartmann.bash-ide-vscode
|
||||
bungcip.better-toml
|
||||
arrterian.nix-env-selector
|
||||
# ms-vscode-remote.remote-ssh
|
||||
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
{
|
||||
name = "just-black";
|
||||
publisher = "nur";
|
||||
version = "3.1.1";
|
||||
sha256 = "sha256-fatJZquCDsLDFGVzBol2D6LIZUbZ6GzqcVEFAwLodW0=";
|
||||
}
|
||||
{
|
||||
name = "vscode-sshfs";
|
||||
publisher = "Kelvin";
|
||||
version = "1.26.1";
|
||||
sha256 = "sha256-WO9vYELNvwmuNeI05sUBE969KAiKYtrJ1fRfdZx3OYU=";
|
||||
}
|
||||
{
|
||||
name = "color-highlight";
|
||||
publisher = "naumovs";
|
||||
version = "2.8.0";
|
||||
sha256 = "sha256-mT2P1lEdW66YkDRN6fi0rmmvvyBfXiJjAUHns8a8ipE=";
|
||||
}
|
||||
{
|
||||
name = "dancehelix";
|
||||
publisher = "silverquark";
|
||||
version = "0.5.16";
|
||||
sha256 = "sha256-oHwtlbB18ctEnfStDOpJ+2/Kq41JZog8FVhTa1/s7m0=";
|
||||
}
|
||||
# {
|
||||
# name = "remote-ssh-edit";
|
||||
# publisher = "ms-vscode-remote";
|
||||
# version = "0.86.0";
|
||||
# sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
|
||||
# }
|
||||
# {
|
||||
# name = "remote-ssh";
|
||||
# publisher = "ms-vscode-remote";
|
||||
# version = "0.110.2024030715";
|
||||
# sha256 = "sha256-gkxrBwPRDdLFaxc1/vYFBsv4Z0JOhDzb8LrLhkToC/g=";
|
||||
# }
|
||||
];
|
||||
userSettings = {
|
||||
workbench.colorTheme = "Just Black";
|
||||
editor.fontFamily = "'${rice.font.code.name}', 'monospace', monospace";
|
||||
remote.SSH.useLocalServer = false;
|
||||
profiles.default ={
|
||||
userSettings = {
|
||||
workbench.colorTheme = "Just Black";
|
||||
editor.fontFamily = "'${rice.font.code.name}', 'monospace', monospace";
|
||||
remote.SSH.useLocalServer = false;
|
||||
};
|
||||
keybindings = [
|
||||
{
|
||||
key = "ctrl+d";
|
||||
command = "editor.action.deleteLines";
|
||||
when = "textInputFocus";
|
||||
}
|
||||
{
|
||||
key = "ctrl+shift+d";
|
||||
command = "editor.action.duplicateSelection";
|
||||
when = "textInputFocus";
|
||||
}
|
||||
{
|
||||
# unset so that ctrl d is not set twice
|
||||
key = "";
|
||||
command = "editor.action.addSelectionToNextFindMatch";
|
||||
when = "editorFocus";
|
||||
}
|
||||
{
|
||||
# unset so that ctrl shift d is not set twice
|
||||
key = "";
|
||||
command = "workbench.view.debug";
|
||||
}
|
||||
];
|
||||
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
jnoortheen.nix-ide
|
||||
ms-python.python
|
||||
ms-python.black-formatter
|
||||
redhat.vscode-yaml
|
||||
redhat.vscode-xml
|
||||
ms-python.python
|
||||
mhutchie.git-graph
|
||||
github.vscode-pull-request-github
|
||||
esbenp.prettier-vscode
|
||||
gencer.html-slim-scss-css-class-completion
|
||||
donjayamanne.githistory
|
||||
mads-hartmann.bash-ide-vscode
|
||||
bungcip.better-toml
|
||||
arrterian.nix-env-selector
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
{
|
||||
name = "just-black";
|
||||
publisher = "nur";
|
||||
version = "3.1.1";
|
||||
sha256 = "sha256-fatJZquCDsLDFGVzBol2D6LIZUbZ6GzqcVEFAwLodW0=";
|
||||
}
|
||||
{
|
||||
name = "vscode-sshfs";
|
||||
publisher = "Kelvin";
|
||||
version = "1.26.1";
|
||||
sha256 = "sha256-WO9vYELNvwmuNeI05sUBE969KAiKYtrJ1fRfdZx3OYU=";
|
||||
}
|
||||
{
|
||||
name = "color-highlight";
|
||||
publisher = "naumovs";
|
||||
version = "2.8.0";
|
||||
sha256 = "sha256-mT2P1lEdW66YkDRN6fi0rmmvvyBfXiJjAUHns8a8ipE=";
|
||||
}
|
||||
{
|
||||
name = "dancehelix";
|
||||
publisher = "silverquark";
|
||||
version = "0.5.16";
|
||||
sha256 = "sha256-oHwtlbB18ctEnfStDOpJ+2/Kq41JZog8FVhTa1/s7m0=";
|
||||
}
|
||||
];
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
};
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
keybindings = [
|
||||
{
|
||||
key = "ctrl+d";
|
||||
command = "editor.action.deleteLines";
|
||||
when = "textInputFocus";
|
||||
}
|
||||
{
|
||||
key = "ctrl+shift+d";
|
||||
command = "editor.action.duplicateSelection";
|
||||
when = "textInputFocus";
|
||||
}
|
||||
{
|
||||
# unset so that ctrl d is not set twice
|
||||
key = "";
|
||||
command = "editor.action.addSelectionToNextFindMatch";
|
||||
when = "editorFocus";
|
||||
}
|
||||
{
|
||||
# unset so that ctrl shift d is not set twice
|
||||
key = "";
|
||||
command = "workbench.view.debug";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
imports = if host != "NxACE" then [
|
||||
# Make vscode settings writable
|
||||
(import
|
||||
(builtins.fetchurl {
|
||||
url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/mutability.nix";
|
||||
sha256 = "4b5ca670c1ac865927e98ac5bf5c131eca46cc20abf0bd0612db955bfc979de8";
|
||||
})
|
||||
{ inherit config lib; })
|
||||
# imports = if hyper.host != "NxACE" then [
|
||||
# # Make vscode settings writable
|
||||
# (import
|
||||
# (builtins.fetchurl {
|
||||
# url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/mutability.nix";
|
||||
# sha256 = "4b5ca670c1ac865927e98ac5bf5c131eca46cc20abf0bd0612db955bfc979de8";
|
||||
# })
|
||||
# { inherit config pkgs; lib = pkgs.lib; })
|
||||
|
||||
(import
|
||||
(builtins.fetchurl {
|
||||
url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/vscode.nix";
|
||||
sha256 = "fed877fa1eefd94bc4806641cea87138df78a47af89c7818ac5e76ebacbd025f";
|
||||
})
|
||||
{ inherit config lib pkgs; })
|
||||
] else [];
|
||||
# (import
|
||||
# (builtins.fetchurl {
|
||||
# url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/vscode.nix";
|
||||
# sha256 = "fed877fa1eefd94bc4806641cea87138df78a47af89c7818ac5e76ebacbd025f";
|
||||
# })
|
||||
# { inherit config pkgs; lib = pkgs.lib; })
|
||||
# ] else [];
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ pkgs-unstable, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs-unstable; [
|
||||
home.packages = with pkgs; [
|
||||
(writers.writePython3Bin "change_colors_json" {
|
||||
libraries = with python3Packages; [ numpy pillow scikit-learn ];
|
||||
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ config, pkgs, rice, domain, user, ... }:
|
||||
{ pkgs, hyper, rice, ... }:
|
||||
let
|
||||
sep = " ";
|
||||
in {
|
||||
@@ -121,8 +121,8 @@ def get_ongoing_or_next_event(url, username, password):
|
||||
if __name__ == "__main__":
|
||||
password_file = "/home/nx2/.config/sops-nix/secrets/nx2site/radicale/password" # Path to password file
|
||||
cache_file = "/tmp/caldav_event_cache.json" # Path to cache file
|
||||
url = "https://dav.${domain}/"
|
||||
username = "${user}"
|
||||
url = "https://dav.${hyper.domain}/"
|
||||
username = "${hyper.user}"
|
||||
password = get_password(password_file)
|
||||
|
||||
event_dict = load_cache(cache_file)
|
||||
@@ -175,6 +175,7 @@ if __name__ == "__main__":
|
||||
margin-bottom = 0;
|
||||
margin-right = 0;
|
||||
spacing = 10;
|
||||
fixed-center = true;
|
||||
modules-left = [
|
||||
# "cpu"
|
||||
# "memory"
|
||||
@@ -189,7 +190,7 @@ if __name__ == "__main__":
|
||||
];
|
||||
modules-right = [
|
||||
"custom/mode"
|
||||
"custom/caldav_event"
|
||||
# "custom/caldav_event"
|
||||
"custom/cclock"
|
||||
"tray"
|
||||
];
|
||||
@@ -212,6 +213,7 @@ if __name__ == "__main__":
|
||||
format = "${sep}{}";
|
||||
exec = "caldav_event";
|
||||
restart-interval = 60;
|
||||
max-width = 60;
|
||||
};
|
||||
"custom/mode" = {
|
||||
exec = "cat /tmp/waybar-mode";
|
||||
@@ -311,6 +313,10 @@ if __name__ == "__main__":
|
||||
color: rgb(${f accent.bright});
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
font-family: ${rice.font.code.name};
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: rgb(${f accent.base});
|
||||
padding-left: 15px;
|
||||
@@ -335,7 +341,7 @@ if __name__ == "__main__":
|
||||
color: rgb(${f red.base});
|
||||
}
|
||||
|
||||
#window, #custom-ctimeremaining {
|
||||
#window, #custom-caldav_event {
|
||||
font-family: ${rice.font.base.name}, ${rice.font.code.name};
|
||||
color: rgb(${f tertiary.bright});
|
||||
}
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
{ pkgs, system, rice, inputs, ... }:
|
||||
{ pkgs, hyper, rice, inputs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# yazi
|
||||
# dragon
|
||||
unar
|
||||
];
|
||||
];
|
||||
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
# package = pkgs.yazi;
|
||||
package = inputs.yazi.packages.${system}.default;
|
||||
package = inputs.yazi.packages.${hyper.system}.default;
|
||||
enableFishIntegration = true;
|
||||
shellWrapperName = "ya";
|
||||
plugins = with inputs.yazi-plugins.packages.${system}; {
|
||||
plugins = with inputs.yazi-plugins.packages.${hyper.system}; {
|
||||
inherit
|
||||
# chmod
|
||||
starship;
|
||||
@@ -271,6 +269,7 @@
|
||||
{ mime = "audio/*"; use = "play"; }
|
||||
|
||||
{ mime = "application/x-httpd-php"; use = [ "edit" "browser" ]; }
|
||||
{ mime = "application/javascript"; use = "edit"; }
|
||||
{ mime = "application/json"; use = "edit"; }
|
||||
{ mime = "application/ld+json"; use = "edit"; }
|
||||
{ mime = "application/pdf"; use = "document"; }
|
||||
|
||||
Reference in New Issue
Block a user