Compare commits

...

23 commits

Author SHA1 Message Date
Tigor Hutasuhut 958d050446 castle: enable zellij 2024-07-29 20:24:03 +07:00
Tigor Hutasuhut 4169038393 update zellij auto init 2024-07-29 12:50:05 +07:00
Tigor Hutasuhut 09202966e0 fort: enabled zellij 2024-07-29 10:26:11 +07:00
Tigor Hutasuhut 3e078a2d1b homeserver: added memos podman service 2024-07-28 22:18:27 +07:00
Tigor Hutasuhut 655960ee3c router: requires wireguard to access the router page from remote. 2024-07-28 21:17:35 +07:00
Tigor Hutasuhut 5dc68117c7 cockpit: now remote access is denied by default. Require wireguard to
access cockpit.
2024-07-28 21:05:39 +07:00
Tigor Hutasuhut a250517712 hyprland: default terminal moved to foot 2024-07-26 20:10:32 +07:00
Tigor Hutasuhut 415932a019 foot: added config 2024-07-26 20:03:25 +07:00
Tigor Hutasuhut 25fa53ed07 minecraft: added user 2024-07-26 20:02:09 +07:00
Tigor Hutasuhut d3c6615592 bareksa: added more hosts 2024-07-26 19:50:21 +07:00
Tigor Hutasuhut 557e26bae5 foot: added config (not installed yet) 2024-07-26 16:57:20 +07:00
Tigor Hutasuhut 575c8b5425 homeserver: added missing intel gpu drivers 2024-07-26 15:53:53 +07:00
Tigor Hutasuhut 9470ffef76 zellij: chenged status bar theme 2024-07-26 15:08:02 +07:00
Tigor Hutasuhut b32197996d zellij: added zj-quit 2024-07-26 14:56:38 +07:00
Tigor Hutasuhut 7742585d6e zellij: more fix at opening terminal or connecting via ssh 2024-07-26 14:36:44 +07:00
Tigor Hutasuhut 5560bbb27f zsh: added build function to test nix file expressions 2024-07-26 00:16:08 +07:00
Tigor Hutasuhut 9a1a807c52 zellij: added zstatus plugin 2024-07-26 00:15:55 +07:00
Tigor Hutasuhut 7fae36b9b0 zellij: update session management keybindings 2024-07-25 23:13:15 +07:00
Tigor Hutasuhut b04e84649a zellij: fix zellij failed to start when autoAttach is true when multiple
zellij sessions are running
2024-07-25 22:46:32 +07:00
Tigor Hutasuhut a4d757079b home: added zellij implementation 2024-07-25 22:28:38 +07:00
Tigor Hutasuhut 444c0d9253 syncthing: added sops folder 2024-07-24 09:50:06 +07:00
Tigor Hutasuhut 9b37639ed9 bareksa: added new host 2024-07-23 10:47:51 +07:00
Tigor Hutasuhut 11203c1029 kitty: moved config file to programs directory 2024-07-23 10:24:21 +07:00
27 changed files with 482 additions and 96 deletions

View file

@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1721571743,
"narHash": "sha256-hat7wggtDISBJD8kTo5MTrT+IsY/Ha2MwgjmqqijoCA=",
"lastModified": 1722100913,
"narHash": "sha256-75Hcx5Zu0f+BeCkZxN1frkYacjbkwgCq+z3doVgr4Hw=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "601f6cf95cbe4fef02dc7faf34bba58566c914e9",
"rev": "4918e57979bbdbd05aabb20f63e1cb5dc289bcbd",
"type": "github"
},
"original": {
@ -240,11 +240,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1721598736,
"narHash": "sha256-mNqXUKZA8WrCcFAUp+EgHJFmRi9ZYevW6Jeczuq0DUs=",
"lastModified": 1722203795,
"narHash": "sha256-Ml3cL8ayTGozjo8QW08J7jEPIRMWtQmdW1Y44pb2SYQ=",
"ref": "refs/heads/main",
"rev": "672bf1f8670b200da57e2f6de4e9ed7efd8c98fc",
"revCount": 4949,
"rev": "a9d87bd6669568741704de08b6f0328a92e29396",
"revCount": 5009,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@ -289,11 +289,11 @@
]
},
"locked": {
"lastModified": 1718746314,
"narHash": "sha256-HUklK5u86w2Yh9dOkk4FdsL8eehcOZ95jPhLixGDRQY=",
"lastModified": 1721326555,
"narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "1b61f0093afff20ab44d88ad707aed8bf2215290",
"rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
"type": "github"
},
"original": {
@ -343,11 +343,11 @@
]
},
"locked": {
"lastModified": 1721324102,
"narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=",
"lastModified": 1722098849,
"narHash": "sha256-D3wIZlBNh7LuZ0NaoCpY/Pvu+xHxIVtSN+KkWZYvvVs=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "962582a090bc233c4de9d9897f46794280288989",
"rev": "5dcbbc1e3de40b2cecfd2007434d86e924468f1f",
"type": "github"
},
"original": {
@ -391,11 +391,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1721628736,
"narHash": "sha256-dIm/veBiLpclmij7FFXo6+23Swxxdj2nDPTMM3RzuYc=",
"lastModified": 1722132807,
"narHash": "sha256-zoaimNxqTf/x1fZ4eXBj5qdgDa0qs9JPWUCFsIPZQzs=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "464172e98eecf9a8079a9a381ffb75789d8c0e5e",
"rev": "4e77eaba554c3ec4763ecef358e6aa6ace41a6a3",
"type": "github"
},
"original": {
@ -407,11 +407,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1721572156,
"narHash": "sha256-DyPWvLGftJ0kyrAtlInrztgJHZeB1kK317Icd9iRJKs=",
"lastModified": 1722112214,
"narHash": "sha256-BSE2ivy/IQyPClatgqdTJP1DyJZ4vryqBdMuEA9NOmQ=",
"owner": "neovim",
"repo": "neovim",
"rev": "7381f0a1d517474dcf8d8d019cbda430ce4bff23",
"rev": "bdff50dee56ebf6de58d58315920abf2f8e262f7",
"type": "github"
},
"original": {
@ -427,11 +427,11 @@
]
},
"locked": {
"lastModified": 1721531260,
"narHash": "sha256-O72uxk4gYFQDwNkoBioyrR3GK9EReZmexCStBaORMW8=",
"lastModified": 1722136042,
"narHash": "sha256-x3FmT4QSyK28itMiR5zfYhUrG5nY+2dv+AIcKfmSp5A=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "b6db9fd8dc59bb2ccb403f76d16ba8bbc1d5263d",
"rev": "c0ca47e8523b578464014961059999d8eddd4aae",
"type": "github"
},
"original": {
@ -442,11 +442,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1721379653,
"narHash": "sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0=",
"lastModified": 1721924956,
"narHash": "sha256-Sb1jlyRO+N8jBXEX9Pg9Z1Qb8Bw9QyOgLDNMEpmjZ2M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1d9c2c9b3e71b9ee663d11c5d298727dace8d374",
"rev": "5ad6a14c6bf098e98800b091668718c336effc95",
"type": "github"
},
"original": {
@ -474,11 +474,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1721379653,
"narHash": "sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0=",
"lastModified": 1722062969,
"narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1d9c2c9b3e71b9ee663d11c5d298727dace8d374",
"rev": "b73c2221a46c13557b1b3be9c2070cc42cf01eb3",
"type": "github"
},
"original": {
@ -489,11 +489,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1721559948,
"narHash": "sha256-cFgdjyK/VBM3hB1RfFHXcI/VOCBVAv813s1upHKX7bI=",
"lastModified": 1722073938,
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c19d62ad2265b16e2199c5feb4650fe459ca1c46",
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
"type": "github"
},
"original": {
@ -505,11 +505,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1721548954,
"narHash": "sha256-7cCC8+Tdq1+3OPyc3+gVo9dzUNkNIQfwSDJ2HSi2u3o=",
"lastModified": 1722087241,
"narHash": "sha256-2ShmEaFi0kJVOEEu5gmlykN5dwjWYWYUJmlRTvZQRpU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "63d37ccd2d178d54e7fb691d7ec76000740ea24a",
"rev": "8c50662509100d53229d4be607f1a3a31157fa12",
"type": "github"
},
"original": {
@ -520,11 +520,11 @@
},
"nur": {
"locked": {
"lastModified": 1721620571,
"narHash": "sha256-lJshAnoRbhfIIvVQ5TYRuF2dvN2mS2XERfPuCtdz+bI=",
"lastModified": 1722221352,
"narHash": "sha256-wE77bI4c4GfHTNcyluxWrA4A9BDYhFC4wW7hdFQ7Ycg=",
"owner": "nix-community",
"repo": "NUR",
"rev": "6abd9135d52574152fedc0fa80403f98f62eafd3",
"rev": "021b38de49f8678496e9286e87fa46dd23ab3d84",
"type": "github"
},
"original": {
@ -554,11 +554,11 @@
]
},
"locked": {
"lastModified": 1721614891,
"narHash": "sha256-1yGOh8w/yhWAZ2NJR9N/shQ1tx2n9fmGe0XrDE00i9U=",
"lastModified": 1722219664,
"narHash": "sha256-xMOJ+HW4yj6e69PvieohUJ3dBSdgCfvI0nnCEe6/yVc=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "424a759557ed4c01cf9dbbf79a714150d64a90ad",
"rev": "a6fbda5d9a14fb5f7c69b8489d24afeb349c7bb4",
"type": "github"
},
"original": {
@ -575,11 +575,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1721531171,
"narHash": "sha256-AsvPw7T0tBLb53xZGcUC3YPqlIpdxoSx56u8vPCr6gU=",
"lastModified": 1722114803,
"narHash": "sha256-s6YhI8UHwQvO4cIFLwl1wZ1eS5Cuuw7ld2VzUchdFP0=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "909e8cfb60d83321d85c8d17209d733658a21c95",
"rev": "eb34eb588132d653e4c4925d862f1e5a227cc2ab",
"type": "github"
},
"original": {
@ -620,11 +620,11 @@
]
},
"locked": {
"lastModified": 1720194466,
"narHash": "sha256-Rizg9efi6ue95zOp0MeIV2ZedNo+5U9G2l6yirgBUnA=",
"lastModified": 1722181019,
"narHash": "sha256-Lj/g1UzrsTZUixtveQix6eB3pon2j23qv5/5pzTx0LQ=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "b9b97e5ba23fe7bd5fa4df54696102e8aa863cf6",
"rev": "0e2f3b9c85f7bab3983098a01366876d34daf383",
"type": "github"
},
"original": {

View file

@ -60,4 +60,13 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.opengl = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver
intel-vaapi-driver
libvdpau-va-gl
];
};
environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Force intel-media-driver
}

View file

@ -11,7 +11,6 @@ in
./modules
./direnv.nix
./config/kitty
./config/ideavim
./secrets.nix
];

View file

@ -19,6 +19,8 @@ let
in
{
config = lib.mkIf cfg.enable {
profile.home.programs.foot.enable = lib.mkForce true;
home.packages = [
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast
pkgs.wl-clipboard
@ -82,13 +84,14 @@ in
# https://wiki.hyprland.org/Configuring/Binds
bind = [
# Programs
"$mod, RETURN, exec, kitty"
"$mod, RETURN, exec, foot"
"$mod, E, exec, thunar"
"$mod, B, exec, microsoft-edge"
"$mod, D, exec, rofi -show drun -replace -i"
"$mod, BackSpace, exec, wlogout"
''$mod, F, exec, ${select-window.path}''
"$mod, W, exec, pypr wall next"
"$mod, S, exec, foot ssh homeserver@vpn.tigor.web.id"
# Workspaces
"$mod, 1, workspace, 1"
@ -180,7 +183,7 @@ in
disable_splash_rendering = true;
focus_on_activate = true;
enable_swallow = true;
swallow_regex = "^(Alacritty|kitty|footclient|org\.wezfurlong\.wezterm)$";
swallow_regex = "^(Alacritty|kitty|footclient|org\.wezfurlong\.wezterm|foot|footclient)$";
};
animations = {

View file

@ -23,8 +23,8 @@ in
];
scratchpads.term = {
animation = "fromTop";
command = "kitty --class kitty-dropterm";
class = "kitty-dropterm";
command = "foot --app-id foot-scratchpad";
class = "foot-scratchpad";
size = "75% 75%";
};
wallpapers = {

View file

@ -0,0 +1,26 @@
[colors]
alpha={{ alpha/100 }}
background={{background | strip}}
foreground={{foreground | strip}}
flash={{color2 | strip}}
flash-alpha=0.5
## Normal/regular colors (color palette 0-7)
regular0={{color0 | strip}}
regular1={{color1 | strip}}
regular2={{color2 | strip}}
regular3={{color3 | strip}}
regular4={{color4 | strip}}
regular5={{color5 | strip}}
regular6={{color6 | strip}}
regular7={{color7 | strip}}
## Bright colors (color palette 8-15)
bright0={{color8 | strip}}
bright1={{color9 | strip}}
bright2={{color10 | strip}}
bright3={{color11 | strip}}
bright4={{color12 | strip}}
bright5={{color13 | strip}}
bright6={{color14 | strip}}
bright7={{color15 | strip}}

View file

@ -94,6 +94,10 @@ in
template = "templates/alacritty.toml";
target = out + "/alacritty.toml";
};
foot = {
template = "templates/foot.ini";
target = "${config.home.homeDirectory}/.config/foot/colors.ini";
};
};
};
};

View file

@ -6,10 +6,12 @@
./dbeaver.nix
./discord.nix
./easyeffects.nix
./foot.nix
./git.nix
./github.nix
./go.nix
./jellyfin.nix
./kitty.nix
./microsoft-edge.nix
./mongodb-compass.nix
./mpv.nix
@ -26,6 +28,7 @@
./vscode.nix
./whatsapp.nix
./zathura.nix
./zellij.nix
./zsh.nix
./wezterm

20
home/programs/foot.nix Normal file
View file

@ -0,0 +1,20 @@
{ config, lib, ... }:
let
cfg = config.profile.home.programs.foot;
in
{
config = lib.mkIf cfg.enable {
programs.foot = {
enable = true;
settings = {
main = {
font = "JetBrainsMono Nerd Font Mono:size=12";
include = lib.mkIf config.profile.hyprland.enable "${config.home.homeDirectory}/.config/foot/colors.ini";
};
mouse = {
hide-when-typing = "yes";
};
};
};
};
}

View file

@ -4,7 +4,7 @@ let
in
{
config = lib.mkIf cfg.enable {
programs.zsh.initExtra = ''
programs.zsh.initExtra = /*bash*/ ''
if [[ "$TERM" == "xterm-kitty" ]]; then
alias ssh="kitty +kitten ssh"
fi
@ -25,16 +25,18 @@ in
tab_bar_style = "slant";
background_blur = 40;
background_opacity = toString 0.90;
cursor_blink_interval = toString 0.5;
};
keybindings = {
"ctrl+a>enter" = "launch --location=hsplit --cwd=current";
"ctrl+a>backspace" = "launch --location=vsplit --cwd=current";
"ctrl+a>enter" = "launch --location=vsplit --cwd=current";
"ctrl+a>backspace" = "launch --location=hsplit --cwd=current";
"ctrl+a>h" = "neighboring_window left";
"ctrl+a>j" = "neighboring_window down";
"ctrl+a>k" = "neighboring_window up";
"ctrl+a>l" = "neighboring_window right";
"ctrl+a>t" = "new_tab_with_cwd";
"ctrl+a>w" = "close_window";
"ctrl+a>r" = "start_resizing_window";
};
font = {
name = "JetBrainsMono Nerd Font Mono";
@ -44,10 +46,5 @@ in
globinclude kitty.d/**/*.conf
'';
};
home.file.".config/kitty" = {
source = ./.;
recursive = true;
};
};
}

View file

@ -4,10 +4,6 @@ let
in
{
config = lib.mkIf cfg.enable {
wayland.windowManager.hyprland.settings.bind = [
"$mod, S, exec, wezterm ssh homeserver@vpn.tigor.web.id"
];
programs.wezterm = {
enable = true;
enableZshIntegration = true;

248
home/programs/zellij.nix Normal file
View file

@ -0,0 +1,248 @@
{ config, lib, pkgs, ... }:
let
cfg = config.profile.home.programs.zellij;
plugins = {
zj-quit = pkgs.fetchurl {
url = "https://github.com/cristiand391/zj-quit/releases/download/0.3.0/zj-quit.wasm";
hash = "sha256-f1D3cDuLRZ5IqY3IGq6UYSEu1VK54TwmkmwWaxVQD2A=";
};
zstatus = pkgs.fetchurl {
url = "https://github.com/dj95/zjstatus/releases/download/v0.17.0/zjstatus.wasm";
hash = "sha256-IgTfSl24Eap+0zhfiwTvmdVy/dryPxfEF7LhVNVXe+U";
};
};
in
{
config = lib.mkIf cfg.enable {
programs.zellij.enable = true;
# Uses initExtraFirst instead of initExtra
# to avoid loading of zsh plugins before zellij loads.
#
# Let zsh inside zellij that loads zsh plugins.
#
# The lib.mkOrder is used to ensure zellij is
# autoloaded first after zshenv.
programs.zsh.initExtraFirst = lib.mkOrder 50 (
if cfg.autoAttach then
/*bash*/
''
if [[ -z "$ZELLIJ" ]]; then
ZJ_SESSIONS=$(zellij list-sessions --no-formatting)
NO_SESSIONS=$(echo "$ZJ_SESSIONS" | wc -l)
if [ "$NO_SESSIONS" -ge 2 ]; then
SELECTED_SESSION=$(echo "$ZJ_SESSIONS" | ${pkgs.skim}/bin/sk | awk '{print $1}')
if [[ -n "''${SELECTED_SESSION// /}" ]]; then
zellij attach -c "$SELECTED_SESSION"
else
zellij attach -c --index 0
fi
else
zellij attach -c
fi
exit
fi
''
else
/*bash*/ ''
if [[ -z "$ZELLIJ" ]]; then
zellij attach -c default
exit
fi
''
);
home.file.".config/zellij/config.kdl".text = /*kdl*/ ''
theme "catppuccin-mocha";
plugins {
zj-quit location="file:${plugins.zj-quit}";
}
keybinds clear-defaults=true {
shared_except "locked" {
bind "Ctrl q" {
LaunchOrFocusPlugin "zj-quit" {
floating true
};
}
}
normal {
bind "Ctrl a" { SwitchToMode "tmux"; }
}
locked {
bind "Ctrl a" { SwitchToMode "normal"; }
}
tmux {
// Switching modes
bind "Ctrl a" "Ctrl c" "Esc" { SwitchToMode "Normal"; }
bind "w" { SwitchToMode "Resize"; }
bind "e" { SwitchToMode "Scroll"; }
bind "S" { SwitchToMode "Session"; }
bind "r" { SwitchToMode "RenamePane"; PaneNameInput 0; }
bind "R" { SwitchToMode "RenameTab"; TabNameInput 0; }
bind "/" { SwitchToMode "EnterSearch"; SearchInput 0; }
bind "\\" { SwitchToMode "locked"; }
// Pane management
bind "Enter" { NewPane "Right"; SwitchToMode "Normal"; };
bind "Backspace" { NewPane "Down"; SwitchToMode "Normal"; };
bind "q" { CloseFocus; SwitchToMode "Normal"; }
bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "H" { MovePane "Left"; SwitchToMode "Normal"; }
bind "J" { MovePane "Down"; SwitchToMode "Normal"; }
bind "K" { MovePane "Up"; SwitchToMode "Normal"; }
bind "L" { MovePane "Right"; SwitchToMode "Normal"; }
bind "Space" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
// Tab management
bind "t" { NewTab; SwitchToMode "Normal"; }
bind "x" { CloseTab; SwitchToMode "Normal"; }
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
// Session management
bind "s" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal";
}
}
resize {
bind "Ctrl c" "Esc" { SwitchToMode "Normal"; }
bind "h" "Left" { Resize "Increase Left"; }
bind "j" "Down" { Resize "Increase Down"; }
bind "k" "Up" { Resize "Increase Up"; }
bind "l" "Right" { Resize "Increase Right"; }
bind "H" { Resize "Decrease Left"; }
bind "J" { Resize "Decrease Down"; }
bind "K" { Resize "Decrease Up"; }
bind "L" { Resize "Decrease Right"; }
bind "=" "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
}
search {
bind "/" { SwitchToMode "EnterSearch"; SearchInput 0; }
bind "Ctrl s" { SwitchToMode "Normal"; }
bind "Ctrl c" "Esc" { ScrollToBottom; SwitchToMode "Normal"; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
bind "n" { Search "down"; }
bind "p" { Search "up"; }
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "w" { SearchToggleOption "Wrap"; }
bind "o" { SearchToggleOption "WholeWord"; }
}
entersearch {
bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; }
bind "Enter" { SwitchToMode "Search"; }
}
scroll {
bind "Esc" { SwitchToMode "Normal"; }
bind "e" { EditScrollback; SwitchToMode "Normal"; }
bind "/" { SwitchToMode "EnterSearch"; SearchInput 0; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
}
session {
bind "Ctrl c" "Esc" { SwitchToMode "Normal"; }
bind "d" { Detach; }
bind "S" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal"
}
bind "c" {
LaunchOrFocusPlugin "configuration" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal"
}
}
renametab {
bind "Ctrl c" "Esc" { SwitchToMode "Normal"; }
// bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; }
}
renamepane {
bind "Ctrl c" "Esc" { SwitchToMode "Normal"; }
// bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; }
}
// Unused modes is only given escape keys to return to normal mode.
pane {
bind "Ctrl c" "Esc" { SwitchToMode "Normal"; }
}
move {
bind "Ctrl c" "Esc" { SwitchToMode "Normal"; }
}
}
'';
home.file.".config/zellij/layouts/default.kdl".text = /*kdl*/ ''
layout {
pane split_direction="vertical" {
pane
}
pane size=1 borderless=true {
plugin location="file:${plugins.zstatus}" {
format_left "{mode}#[fg=black,bg=blue,bold]{session} #[fg=blue,bg=#181825]{tabs}"
format_right "#[fg=#181825,bg=#b1bbfa]{datetime}"
format_space "#[bg=#181825]"
hide_frame_for_single_pane "true"
mode_normal "#[bg=blue] "
tab_normal "#[fg=#181825,bg=#4C4C59] #[fg=#000000,bg=#4C4C59]{index} {name} #[fg=#4C4C59,bg=#181825]"
tab_normal_fullscreen "#[fg=#6C7086,bg=#181825] {index} {name} [] "
tab_normal_sync "#[fg=#6C7086,bg=#181825] {index} {name} <> "
tab_active "#[fg=#181825,bg=#ffffff,bold,italic] {index} {name} #[fg=#ffffff,bg=#181825]"
tab_active_fullscreen "#[fg=#9399B2,bg=#181825,bold,italic] {index} {name} [] "
tab_active_sync "#[fg=#9399B2,bg=#181825,bold,italic] {index} {name} <> "
datetime "#[fg=#6C7086,bg=#b1bbfa,bold] {format} "
datetime_format "%A, %d %b %Y %H:%M"
datetime_timezone "Europe/Berlin"
}
}
}
'';
};
}

View file

@ -89,6 +89,10 @@ in
find $(nix build "nixpkgs#$1" --no-link --print-out-paths)
}
build() {
nix build --impure --expr "with import <nixpkgs> {}; callPackage $1 {}"
}
# Completion settings
## Case insensitive completion
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

View file

@ -14,6 +14,7 @@ in
qbittorrent.enable = lib.mkEnableOption "qbittorrent podman";
openobserve.enable = lib.mkEnableOption "openobserve podman";
minecraft.enable = mkEnableOption "minecraft server podman";
memos.enable = mkEnableOption "memos podman";
servarr = {
enable = mkEnableOption "servarr group";

View file

@ -74,6 +74,23 @@
home.programs = {
zathura.enable = lib.mkEnableOption "zathura";
floorp.enable = lib.mkEnableOption "floorp";
zellij = {
enable = lib.mkEnableOption "zellij";
# Wether to enable auto attach to zellij sessions.
#
# Best used for servers when you want to auto attach to a session when ssh
# into a server.
#
# Desktop usage is not recommended since uses typically have multiple
# terminal windows open and it can be confusing to have a terminal
# window auto attach to a zellij session.
#
# Also, there is resurrections features that zellij offers.
# So desktop user can just resurrect the session if they want to.
autoAttach = lib.mkEnableOption "zellij autoAttach";
};
foot.enable = lib.mkEnableOption "foot";
};
programs = {

View file

@ -83,5 +83,6 @@ in
};
programs.easyeffects.enable = true;
programs.wezterm.enable = true;
home.programs.zellij.enable = true;
};
}

View file

@ -69,5 +69,9 @@
programs.mongodb-compass.enable = true;
podman.enable = true;
home.programs.foot.enable = true;
home.programs.zellij.enable = true;
};
}

View file

@ -38,12 +38,18 @@
servarr.rdtclient.enable = true;
openobserve.enable = true;
minecraft.enable = true;
memos.enable = true;
};
docker = {
enable = false;
};
home.programs.zellij = {
enable = true;
autoAttach = true;
};
services = {
caddy.enable = true;
cockpit.enable = true;

View file

@ -1,21 +0,0 @@
router: ENC[AES256_GCM,data:AulD1VVGGYhEEnHEr8TSYLfMyA14BfTUF3QKxlKpbH7G5Eo/CGZaTSQYBzehgmNZKVAZAG1Efe60aSNhlk1ZlGxMnODGw1wV/dAnuTrqd7ixEE/hz9hO1qr1daWRmb73jQpw3XmFeAHBl4XnLIhdLFNXKEcgZBJ7piw5ZXDpG5EhaUrPhKpRMQb+yPkA9eBTI023iFOiJ8du1TF0RuqTUExUSCkcVaNgpn0pwd5tgnM/gAg7SJ0MGNRPaVL0Bq2S5e6SSO90mFcXPEQDk/1jy3Ml7ZFFQ9GrN612X3j2lYLKcwfBH5327pU=,iv:UBxOzdVt8Nof+I/H2wY0Tng8rrKZyt3fPRVLzygxIuo=,tag:TIWvIFy2QGkP1qMlnnMlbQ==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1kruum2varzua7w5n6n52vhwyek2arc685rhcwt0u7k2jf5mecsjslkl9ll
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhK1lrMkJlNmJwK3ZvSjhz
VnFQa2xMdEt0dU9pRlQxbWZIT09ObVI2cUNBCkx2UnBQOTFRYkhXR0pyWGgxdVIr
R3NvZDBTU3lIY3RHZkxKRDQzRWhmYUUKLS0tIDJtNFc2VzRNQVdxZ0kxME91Um9p
OTBPaGdUZ1ZueUlKMVlhOHBreFV6OVEKBhcqTTA9Vufnn/WAhR5zb08Nsn48zmD2
+bdJf+0B68Z57Q/47fNjvXclqLdDCWToTlIjOTnzVH2oXOWKQQxj6g==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-06-13T13:48:11Z"
mac: ENC[AES256_GCM,data:LjWV/1NPeN58VHH/lgHTukHHDu0zfqCCLeFoVS4yN91IkjdvvqwvTD74GDigw7lm++6LWILjF0zIlryUHJKg4T+Xztsj/kRntVuhSTXsDUU9mu/AOCLu5P7k4fn+N9rAMh5ML9ukeU+ZxTaOHLfezYMLv2c+01B1iMfjZ2qJ9Q4=,iv:Dh4WG98sfRUrTYnbfrZt0gX0co8lI8DUpdxFMy165GI=,tag:9Nn9UcKijyu6RhUjiUDd4g==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -3,6 +3,9 @@
networking.networkmanager.enable = true;
networking.extraHosts = ''
192.168.50.217 gitlab.bareksa.com
192.168.50.205 tools.bareksa.local
192.168.3.50 kafka.dev.bareksa.local
192.168.3.109 redpanda.dev.bareksa.local kafka-console.dev.bareksa.local
'';
networking.firewall =
let

View file

@ -41,6 +41,7 @@ in
# 10.88.0.6 -> Suwayomi Flaresolverr
# 10.88.1.1 -> Pihole
imports = [
./memos.nix
./minecraft.nix
./openobserve.nix
./pihole.nix

47
system/podman/memos.nix Normal file
View file

@ -0,0 +1,47 @@
{ config, lib, ... }:
let
name = "memos";
podman = config.profile.podman;
inherit (lib) mkIf;
ip = "10.88.88.1";
image = "docker.io/neosmemo/memos:stable";
rootVolume = "/nas/podman/memos";
domain = "${name}.tigor.web.id";
user = config.profile.user;
uid = toString user.uid;
gid = toString user.gid;
in
{
config = mkIf (podman.enable && podman.${name}.enable) {
services.caddy.virtualHosts.${domain}.extraConfig = ''
reverse_proxy ${ip}:5230
'';
system.activationScripts."podman-${name}" = ''
mkdir -p ${rootVolume}
chown ${uid}:${gid} ${rootVolume}
'';
virtualisation.oci-containers.containers.${name} = {
inherit image;
hostname = name;
autoStart = true;
user = "${uid}:${gid}";
environment = {
TZ = "Asia/Jakarta";
# MEMOS_PUBLIC = "true";
};
volumes = [
"${rootVolume}:/var/opt/memos"
];
extraOptions = [
"--network=podman"
"--ip=${ip}"
];
labels = {
"io.containers.autoupdate" = "registry";
};
};
};
}

View file

@ -16,6 +16,10 @@ let
username = "CrowFX7414";
xuid = "2533274941938385";
}
{
username = "cherlyxroblox";
xuid = "2535436320975546";
}
];
in
{

View file

@ -43,9 +43,11 @@ in
let
inherit (lib) strings attrsets;
in
''${strings.concatStringsSep "\n" (
attrsets.mapAttrsToList (name: _: "192.168.100.5 ${strings.removePrefix "https://" name}") config.services.caddy.virtualHosts
)}
''
192.168.100.5 vpn.tigor.web.id
${strings.concatStringsSep "\n" (
attrsets.mapAttrsToList (name: _: "192.168.100.5 ${strings.removePrefix "https://" name}") config.services.caddy.virtualHosts
)}
'';
};
virtualisation.oci-containers.containers.${name} = {

View file

@ -7,15 +7,14 @@ in
config = mkIf cfg.enable {
services.caddy = {
enable = true;
extraConfig = ''
import /etc/caddy/sites-enabled/*
'';
};
sops.secrets."router" = {
sopsFile = ../../secrets/caddy_reverse_proxy.yaml;
path = "/etc/caddy/sites-enabled/router";
mode = "0444";
};
services.caddy.virtualHosts."router.tigor.web.id".extraConfig = ''
@denied not remote_ip private_ranges
respond @denied "Access denied" 403
reverse_proxy 192.168.100.1
'';
};
}

View file

@ -8,7 +8,11 @@ in
environment.systemPackages = mkIf config.profile.podman.enable [
(pkgs.callPackage ../packages/cockpit-podman.nix { })
];
services.caddy.virtualHosts."cockpit.tigor.web.id".extraConfig = ''
services.caddy.virtualHosts."cockpit.tigor.web.id".extraConfig = /*caddyfile*/ ''
@denied not remote_ip private_ranges
respond @denied "Access denied" 403
reverse_proxy 0.0.0.0:9090
'';
services.udisks2.enable = true;

View file

@ -124,6 +124,15 @@ in
"living-room-system"
];
};
"/nas/Syncthing/Sync/sops" = {
label = "Sops";
id = "Sops";
devices = [
"s20fe"
"work-laptop"
"windows"
];
};
};
devices = {
s20fe = {