Compare commits
23 commits
b7525b1732
...
958d050446
Author | SHA1 | Date | |
---|---|---|---|
Tigor Hutasuhut | 958d050446 | ||
Tigor Hutasuhut | 4169038393 | ||
Tigor Hutasuhut | 09202966e0 | ||
Tigor Hutasuhut | 3e078a2d1b | ||
Tigor Hutasuhut | 655960ee3c | ||
Tigor Hutasuhut | 5dc68117c7 | ||
Tigor Hutasuhut | a250517712 | ||
Tigor Hutasuhut | 415932a019 | ||
Tigor Hutasuhut | 25fa53ed07 | ||
Tigor Hutasuhut | d3c6615592 | ||
Tigor Hutasuhut | 557e26bae5 | ||
Tigor Hutasuhut | 575c8b5425 | ||
Tigor Hutasuhut | 9470ffef76 | ||
Tigor Hutasuhut | b32197996d | ||
Tigor Hutasuhut | 7742585d6e | ||
Tigor Hutasuhut | 5560bbb27f | ||
Tigor Hutasuhut | 9a1a807c52 | ||
Tigor Hutasuhut | 7fae36b9b0 | ||
Tigor Hutasuhut | b04e84649a | ||
Tigor Hutasuhut | a4d757079b | ||
Tigor Hutasuhut | 444c0d9253 | ||
Tigor Hutasuhut | 9b37639ed9 | ||
Tigor Hutasuhut | 11203c1029 |
92
flake.lock
92
flake.lock
|
@ -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": {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ in
|
|||
./modules
|
||||
|
||||
./direnv.nix
|
||||
./config/kitty
|
||||
./config/ideavim
|
||||
./secrets.nix
|
||||
];
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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 = {
|
||||
|
|
26
home/modules/hyprland/wallust-templates/foot.ini
Normal file
26
home/modules/hyprland/wallust-templates/foot.ini
Normal 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}}
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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
20
home/programs/foot.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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
248
home/programs/zellij.nix
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -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}'
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -83,5 +83,6 @@ in
|
|||
};
|
||||
programs.easyeffects.enable = true;
|
||||
programs.wezterm.enable = true;
|
||||
home.programs.zellij.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -69,5 +69,9 @@
|
|||
programs.mongodb-compass.enable = true;
|
||||
|
||||
podman.enable = true;
|
||||
|
||||
home.programs.foot.enable = true;
|
||||
|
||||
home.programs.zellij.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
47
system/podman/memos.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
|
@ -16,6 +16,10 @@ let
|
|||
username = "CrowFX7414";
|
||||
xuid = "2533274941938385";
|
||||
}
|
||||
{
|
||||
username = "cherlyxroblox";
|
||||
xuid = "2535436320975546";
|
||||
}
|
||||
];
|
||||
in
|
||||
{
|
||||
|
|
|
@ -43,7 +43,9 @@ in
|
|||
let
|
||||
inherit (lib) strings attrsets;
|
||||
in
|
||||
''${strings.concatStringsSep "\n" (
|
||||
''
|
||||
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
|
||||
)}
|
||||
'';
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -124,6 +124,15 @@ in
|
|||
"living-room-system"
|
||||
];
|
||||
};
|
||||
"/nas/Syncthing/Sync/sops" = {
|
||||
label = "Sops";
|
||||
id = "Sops";
|
||||
devices = [
|
||||
"s20fe"
|
||||
"work-laptop"
|
||||
"windows"
|
||||
];
|
||||
};
|
||||
};
|
||||
devices = {
|
||||
s20fe = {
|
||||
|
|
Loading…
Reference in a new issue