Compare commits

..

10 commits

Author SHA1 Message Date
alejandro-angulo 3fc08e78e0
chore: flake/package updates
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
2024-10-27 18:37:03 -07:00
alejandro-angulo 8790d60312
Switched from gitea to forgejo 2024-10-26 16:22:03 -07:00
alejandro-angulo 4af7a4f0ee
Started numbering at 1 2024-10-18 21:25:06 -07:00
alejandro-angulo c382929d9a
Fixed udev rules 2024-10-06 20:37:09 -07:00
alejandro-angulo e1c6396153
Configured udev rules for working with micro:bit v2 2024-10-06 19:59:39 -07:00
alejandro-angulo 323f5e5b1f
Added shortcut for lazygit in a popup 2024-10-06 09:57:13 -07:00
alejandro-angulo 52016deafe
Configured tmux-sessionizer 2024-10-06 09:15:43 -07:00
alejandro-angulo 5c3d7e21ad
Upgraded nextcloud 2024-10-06 08:18:13 -07:00
alejandro-angulo 9470dbdc48
Added tmux pain-control plugin 2024-10-05 20:47:57 -07:00
alejandro-angulo f654c49635
Updated lockfile 2024-10-05 20:47:49 -07:00
8 changed files with 102 additions and 50 deletions

View file

@ -27,11 +27,11 @@
}, },
"catppuccin": { "catppuccin": {
"locked": { "locked": {
"lastModified": 1726952185, "lastModified": 1730036420,
"narHash": "sha256-l/HbsQjJMT6tlf8KCooFYi3J6wjIips3n6/aWAoLY4g=", "narHash": "sha256-rv2bz7J6Wo7AenPiu4+ptCB1AFyaMcS77y89zbRAtI8=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "630b559cc1cb4c0bdd525af506935323e4ccd5d1", "rev": "0b7bf04628414a402d255924f65e9a0d1a53d92b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -288,11 +288,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727383923, "lastModified": 1730016908,
"narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=", "narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "ffe2d07e771580a005e675108212597e5b367d2d", "rev": "e83414058edd339148dc142a8437edb9450574c8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -348,11 +348,11 @@
}, },
"nixlib": { "nixlib": {
"locked": { "locked": {
"lastModified": 1726966855, "lastModified": 1729386149,
"narHash": "sha256-25ByioeOBFcnitO5lM/Mufnv/u7YtHEHEM8QFuiS40k=", "narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "575704ff85d3a41dc5bfef7b55380cbc7b87f3c2", "rev": "cce4521b6df014e79a7b7afc58c703ed683c916e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -369,11 +369,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727312535, "lastModified": 1729472750,
"narHash": "sha256-exnTgS6OBYvEa8v5x8UsLQK2ERdDFwXNFQHoT2cqycY=", "narHash": "sha256-s93LPHi5BN7I2xSGNAFWiYb8WRsPvT1LE9ZjZBrpFlg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-generators", "repo": "nixos-generators",
"rev": "f31447cd3f8e54674bd1675969e97e6043a309bc", "rev": "7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -384,11 +384,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1727540359, "lastModified": 1730068391,
"narHash": "sha256-U+225h1kJZpWb23+RaX1sBkqC4fA7aa7eBbgiQ5HcO4=", "narHash": "sha256-jlAGtfMuI8pUUoUmNkm2P/38pOtHZdcAf3Az8XQLAf4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "fb08bde00c20252b892a3e57fb094eb62b65ba61", "rev": "6906ac67a1078cf950b8527341e229eeecb5bc30",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -400,11 +400,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1727348695, "lastModified": 1729880355,
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", "rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -516,11 +516,11 @@
"powerlevel10k": { "powerlevel10k": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1726575020, "lastModified": 1729844804,
"narHash": "sha256-cI7Nf+W02xfnarri7Dy+nXXpq5u+Ggh7HKk1++0Qq4Q=", "narHash": "sha256-4g6L7ZL86QqrGnZ1F8dHbHlT9T80DR2FGsW1qQbk14k=",
"owner": "romkatv", "owner": "romkatv",
"repo": "powerlevel10k", "repo": "powerlevel10k",
"rev": "087405df7838f4c3e835025699bd7b98b9731acc", "rev": "67a365b9dbf2c784ca8e655d681df10ef2d4a1a4",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -9,14 +9,29 @@
inherit (pkgs) tmuxPlugins; inherit (pkgs) tmuxPlugins;
cfg = config.${namespace}.apps.tmux; cfg = config.${namespace}.apps.tmux;
tmsConfig = {
display_full_path = true;
session_sort_order = "LastAttached";
search_dirs = [
{
path = "${config.home.homeDirectory}/src";
depth = 2;
}
];
};
in { in {
options.${namespace}.apps.tmux = { options.${namespace}.apps.tmux = {
enable = mkEnableOption "tmux"; enable = mkEnableOption "tmux";
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [pkgs.tmux-sessionizer];
programs.tmux = { programs.tmux = {
enable = true; enable = true;
baseIndex = 1;
catppuccin.enable = true; catppuccin.enable = true;
keyMode = "vi"; keyMode = "vi";
newSession = true; newSession = true;
@ -40,11 +55,13 @@ in {
} }
tmuxPlugins.open tmuxPlugins.open
tmuxPlugins.pain-control
tmuxPlugins.tmux-fzf tmuxPlugins.tmux-fzf
tmuxPlugins.vim-tmux-navigator tmuxPlugins.vim-tmux-navigator
]; ];
extraConfig = '' extraConfig =
''
# Scrolling with mouse wheel scrolls output instead of previous commands # Scrolling with mouse wheel scrolls output instead of previous commands
setw -g mouse on setw -g mouse on
@ -52,7 +69,26 @@ in {
bind c new-window -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}" bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}"
# sessionizer
bind C-o display-popup -E "${pkgs.tmux-sessionizer}/bin/tms"
bind C-j display-popup -E "${pkgs.tmux-sessionizer}/bin/tms switch"
bind C-w display-popup -E "${pkgs.tmux-sessionizer}/bin/tms windows"
bind C-s command-prompt -p "Rename active session to:" "run-shell '${pkgs.tmux-sessionizer}/bin/tms rename %1'"
''
+ lib.strings.optionalString config.programs.lazygit.enable ''
# Open lazygit in a popup
# Spins up a new session with a '-lg' suffix (hitting the shortcut
# toggles between attaching and detaching)
bind C-g if-shell "[[ $(tmux display-message -p '#S') == *-lg ]]" {
detach-client
} {
display-popup -h 90% -w 90% -E "tmux new-session -A -s $(tmux display-message -p '#S')-lg ${pkgs.lazygit}/bin/lazygit"
}
''; '';
}; };
xdg.configFile."tms/config.toml".source = (pkgs.formats.toml {}).generate "tms-config" tmsConfig;
}; };
} }

View file

@ -15,7 +15,7 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.eza = { programs.eza = {
enable = true; enable = true;
icons = true; icons = "auto";
git = true; git = true;
}; };
}; };

View file

@ -7,11 +7,11 @@
}: let }: let
inherit (lib) mkIf mkEnableOption mkOption types; inherit (lib) mkIf mkEnableOption mkOption types;
cfg = config.${namespace}.services.gitea; cfg = config.${namespace}.services.forgejo;
gitea_cfg = config.services.gitea; forgejo_cfg = config.services.forgejo;
in { in {
options.${namespace}.services.gitea = { options.${namespace}.services.forgejo = {
enable = mkEnableOption "gitea"; enable = mkEnableOption "forgejo";
acmeCertName = mkOption { acmeCertName = mkOption {
type = types.str; type = types.str;
default = ""; default = "";
@ -23,19 +23,18 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.gitea = { services.forgejo = {
enable = true; enable = true;
appName = "Internal Gitea server";
database = { database = {
type = "postgres"; type = "sqlite3";
}; };
useWizard = false; useWizard = false;
settings = { settings = {
server = { server = {
DOMAIN = "gitea.kilonull.com"; DOMAIN = "git.kilonull.com";
ROOT_URL = "https://gitea.kilonull.com"; ROOT_URL = "https://git.kilonull.com";
HTTP_PORT = 3001; HTTP_PORT = 3001;
}; };
@ -47,23 +46,27 @@ in {
ui.THEMES = '' ui.THEMES = ''
catppuccin-latte-rosewater,catppuccin-latte-flamingo,catppuccin-latte-pink,catppuccin-latte-mauve,catppuccin-latte-red,catppuccin-latte-maroon,catppuccin-latte-peach,catppuccin-latte-yellow,catppuccin-latte-green,catppuccin-latte-teal,catppuccin-latte-sky,catppuccin-latte-sapphire,catppuccin-latte-blue,catppuccin-latte-lavender,catppuccin-frappe-rosewater,catppuccin-frappe-flamingo,catppuccin-frappe-pink,catppuccin-frappe-mauve,catppuccin-frappe-red,catppuccin-frappe-maroon,catppuccin-frappe-peach,catppuccin-frappe-yellow,catppuccin-frappe-green,catppuccin-frappe-teal,catppuccin-frappe-sky,catppuccin-frappe-sapphire,catppuccin-frappe-blue,catppuccin-frappe-lavender,catppuccin-macchiato-rosewater,catppuccin-macchiato-flamingo,catppuccin-macchiato-pink,catppuccin-macchiato-mauve,catppuccin-macchiato-red,catppuccin-macchiato-maroon,catppuccin-macchiato-peach,catppuccin-macchiato-yellow,catppuccin-macchiato-green,catppuccin-macchiato-teal,catppuccin-macchiato-sky,catppuccin-macchiato-sapphire,catppuccin-macchiato-blue,catppuccin-macchiato-lavender,catppuccin-mocha-rosewater,catppuccin-mocha-flamingo,catppuccin-mocha-pink,catppuccin-mocha-mauve,catppuccin-mocha-red,catppuccin-mocha-maroon,catppuccin-mocha-peach,catppuccin-mocha-yellow,catppuccin-mocha-green,catppuccin-mocha-teal,catppuccin-mocha-sky,catppuccin-mocha-sapphire,catppuccin-mocha-blue,catppuccin-mocha-lavender catppuccin-latte-rosewater,catppuccin-latte-flamingo,catppuccin-latte-pink,catppuccin-latte-mauve,catppuccin-latte-red,catppuccin-latte-maroon,catppuccin-latte-peach,catppuccin-latte-yellow,catppuccin-latte-green,catppuccin-latte-teal,catppuccin-latte-sky,catppuccin-latte-sapphire,catppuccin-latte-blue,catppuccin-latte-lavender,catppuccin-frappe-rosewater,catppuccin-frappe-flamingo,catppuccin-frappe-pink,catppuccin-frappe-mauve,catppuccin-frappe-red,catppuccin-frappe-maroon,catppuccin-frappe-peach,catppuccin-frappe-yellow,catppuccin-frappe-green,catppuccin-frappe-teal,catppuccin-frappe-sky,catppuccin-frappe-sapphire,catppuccin-frappe-blue,catppuccin-frappe-lavender,catppuccin-macchiato-rosewater,catppuccin-macchiato-flamingo,catppuccin-macchiato-pink,catppuccin-macchiato-mauve,catppuccin-macchiato-red,catppuccin-macchiato-maroon,catppuccin-macchiato-peach,catppuccin-macchiato-yellow,catppuccin-macchiato-green,catppuccin-macchiato-teal,catppuccin-macchiato-sky,catppuccin-macchiato-sapphire,catppuccin-macchiato-blue,catppuccin-macchiato-lavender,catppuccin-mocha-rosewater,catppuccin-mocha-flamingo,catppuccin-mocha-pink,catppuccin-mocha-mauve,catppuccin-mocha-red,catppuccin-mocha-maroon,catppuccin-mocha-peach,catppuccin-mocha-yellow,catppuccin-mocha-green,catppuccin-mocha-teal,catppuccin-mocha-sky,catppuccin-mocha-sapphire,catppuccin-mocha-blue,catppuccin-mocha-lavender
''; '';
ui.DEFAULT_THEME = "catppuccin-mocha-green";
}; };
}; };
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d '${gitea_cfg.customDir}/public' 0750 ${gitea_cfg.user} ${gitea_cfg.group} - -" "d '${forgejo_cfg.customDir}/public' 0750 ${forgejo_cfg.user} ${forgejo_cfg.group} - -"
"z '${gitea_cfg.customDir}/public' 0750 ${gitea_cfg.user} ${gitea_cfg.group} - -" "z '${forgejo_cfg.customDir}/public' 0750 ${forgejo_cfg.user} ${forgejo_cfg.group} - -"
"d '${gitea_cfg.customDir}/public/assets' 0750 ${gitea_cfg.user} ${gitea_cfg.group} - -" "d '${forgejo_cfg.customDir}/public/assets' 0750 ${forgejo_cfg.user} ${forgejo_cfg.group} - -"
"z '${gitea_cfg.customDir}/public/assets' 0750 ${gitea_cfg.user} ${gitea_cfg.group} - -" "z '${forgejo_cfg.customDir}/public/assets' 0750 ${forgejo_cfg.user} ${forgejo_cfg.group} - -"
"L+ '${gitea_cfg.customDir}/public/assets/css' - - - - ${pkgs.aa.catppuccin-gitea}/share/gitea-themes" "L+ '${forgejo_cfg.customDir}/public/assets/css' - - - - ${pkgs.aa.catppuccin-gitea}/share/gitea-themes"
]; ];
services.nginx = { services.nginx = {
enable = true; enable = true;
virtualHosts."gitea.kilonull.com" = virtualHosts."git.kilonull.com" =
{ {
locations."/" = { locations."/" = {
proxyPass = "http://127.0.0.1:${toString gitea_cfg.settings.server.HTTP_PORT}"; proxyPass = "http://127.0.0.1:${toString forgejo_cfg.settings.server.HTTP_PORT}";
};
locations."= /" = {
return = "301 /explore/repos";
}; };
} }
// lib.optionalAttrs (cfg.acmeCertName != "") { // lib.optionalAttrs (cfg.acmeCertName != "") {

View file

@ -27,7 +27,7 @@ in {
services.nextcloud = { services.nextcloud = {
enable = true; enable = true;
package = pkgs.nextcloud29; package = pkgs.nextcloud30;
hostName = "nextcloud.kilonull.com"; hostName = "nextcloud.kilonull.com";
https = true; https = true;
database.createLocally = true; database.createLocally = true;

View file

@ -5,13 +5,13 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "teslamate-grafana-dashboards"; pname = "teslamate-grafana-dashboards";
version = "1.30.1"; version = "1.31.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "teslamate-org"; owner = "teslamate-org";
repo = "teslamate"; repo = "teslamate";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Iky9zWb3m/ex/amZw2dP5ZOpFw3uyg0JG6e9PkV+t4A="; hash = "sha256-aX6FjOKyjsA/0IgLw/AnB01ddNk0yS6vd01BH/reBP4=";
}; };
dontBuild = true; dontBuild = true;

View file

@ -63,6 +63,19 @@
system.monitoring.enable = true; system.monitoring.enable = true;
}; };
services.udev.packages = [
(pkgs.writeTextFile {
name = "microbit-udev-rules";
text = ''
# CMSIS-DAP for microbit
ACTION!="add|change", GOTO="microbit_rules_end"
SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", ATTR{idProduct}=="0204", TAG+="uaccess"
LABEL="microbit_rules_end"
'';
destination = "/etc/udev/rules.d/69-microbit.rules";
})
];
services.gitea-actions-runner.instances = { services.gitea-actions-runner.instances = {
gospel = { gospel = {
enable = true; enable = true;

View file

@ -50,7 +50,7 @@
}; };
acmeCertName = "kilonull.com"; acmeCertName = "kilonull.com";
}; };
services.gitea = { services.forgejo = {
enable = true; enable = true;
acmeCertName = "kilonull.com"; acmeCertName = "kilonull.com";
}; };