Compare commits

...

3 Commits

Author SHA1 Message Date
7c993c502a Refactoring, replace mcfly with fzf 2025-01-21 00:38:42 +01:00
a3e48a82ae Update ghostty and reverse search config 2025-01-20 22:52:38 +01:00
4d53bc14f5 Add plasma manager 2025-01-20 22:51:38 +01:00
7 changed files with 259 additions and 183 deletions

View File

@ -168,13 +168,37 @@
"type": "github" "type": "github"
} }
}, },
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1736549395,
"narHash": "sha256-XzwkB62Tt5UYoL1jXiHzgk/qz2fUpGHExcSIbyGTtI0=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "a53af7f1514ef4cce8620a9d6a50f238cdedec8b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"mac-app-util": "mac-app-util", "mac-app-util": "mac-app-util",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nixgl": "nixgl", "nixgl": "nixgl",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"plasma-manager": "plasma-manager"
} }
}, },
"systems": { "systems": {

View File

@ -6,12 +6,19 @@
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nix-darwin.url = "github:LnL7/nix-darwin"; nix-darwin.url = "github:LnL7/nix-darwin";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
mac-app-util.url = "github:hraban/mac-app-util"; mac-app-util.url = "github:hraban/mac-app-util";
mac-app-util.inputs.nixpkgs.follows = "nixpkgs"; mac-app-util.inputs.nixpkgs.follows = "nixpkgs";
nixgl.url = "github:nix-community/nixGL"; nixgl.url = "github:nix-community/nixGL";
nixgl.inputs.nixpkgs.follows = "nixpkgs"; nixgl.inputs.nixpkgs.follows = "nixpkgs";
plasma-manager.url = "github:nix-community/plasma-manager";
plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
plasma-manager.inputs.home-manager.follows = "home-manager";
}; };
outputs = outputs =
@ -22,6 +29,7 @@
nix-darwin, nix-darwin,
nixgl, nixgl,
nixpkgs, nixpkgs,
plasma-manager,
}: }:
let let
systems = nixpkgs.lib.genAttrs [ systems = nixpkgs.lib.genAttrs [
@ -73,6 +81,7 @@
inherit pkgs; inherit pkgs;
modules = [ modules = [
inputs.plasma-manager.homeManagerModules.plasma-manager
./home-manager/common.nix ./home-manager/common.nix
./home-manager/becky-dingleberry.nix ./home-manager/becky-dingleberry.nix
]; ];

View File

@ -4,6 +4,7 @@
pkgs, pkgs,
... ...
}: }:
# TODO: implement plasma configuration
# TODO: Plasma does not see home manager installed packages # TODO: Plasma does not see home manager installed packages
let let
username = "becky"; username = "becky";
@ -63,23 +64,22 @@ in
home.stateVersion = "24.11"; home.stateVersion = "24.11";
home.packages = with pkgs; [ home.packages = with pkgs; [
nixd android-tools
android-udev-rules
# TODO: Move from system to nix # TODO: Move from system to nix
# awscli2 # awscli2
# k9s
# kubectl # kubectl
# Terminal image viewer # Terminal image viewer
viu tcpdump
]; ];
xdg.configFile = lib.mkMerge [ xdg.configFile = lib.mkMerge [
{ {
"ghostty/config" = { "ghostty/config" = {
text = '' text = ''
font-size = 10 ${builtins.readFile ./shared/ghostty.config}
theme = catppuccin-mocha
window-height = 9999 font-size = 11
window-width = 9999
''; '';
}; };
} }
@ -91,12 +91,7 @@ in
file = "share/bat/syntaxes/ghostty.sublime-syntax"; file = "share/bat/syntaxes/ghostty.sublime-syntax";
}; };
programs.vim.plugins = lib.mkMerge [ pkgs.ghostty.vim ]; programs.vim.plugins = [ pkgs.ghostty.vim ];
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.git = { programs.git = {
enable = true; enable = true;
@ -141,33 +136,6 @@ in
# }; # };
# }; # };
programs.htop = {
enable = true;
};
programs.jq = {
enable = true;
};
programs.k9s = {
enable = true;
settings = {
k9s = {
refreshRate = 2;
ui = {
logoless = true;
headless = true;
};
logger = {
tail = 1000;
sinceSeconds = 60 * 30;
fullScreen = true;
showtime = true;
};
};
};
};
programs.lsd = { programs.lsd = {
enable = true; enable = true;
enableAliases = true; enableAliases = true;
@ -187,32 +155,67 @@ in
}; };
}; };
programs.mcfly = {
enable = true;
enableZshIntegration = true;
keyScheme = "vim";
# TODO: Test
fuzzySearchFactor = 2;
settings = {
colors = {
menubar = {
bg = "black";
fg = "red";
};
darkmode = {
prompt = "cyan";
timing = "yellow";
};
};
};
};
programs.pay-respects = { programs.pay-respects = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
}; };
# https://github.com/nix-community/plasma-manager
# https://nix-community.github.io/plasma-manager/options.xhtml
#https://github.com/HeitorAugustoLN/nix-config/tree/main/home/heitor/features/desktop/plasma
# ~/.config/kglobalshortcutsrc
programs.plasma = {
enable = true;
# killall kglobalaccel5; kglobalaccel5 &; disown
shortcuts = {
"org.kde.konsole.desktop" = {
_launch = "none";
};
"com.mitchellh.ghostty.desktop" = {
_launch = "Ctrl+Alt+T";
};
kded5 = {
display = [
"none"
"none"
"Switch Display"
];
};
ksmserver = {
"Lock Session" = "Meta+Ctrl+Q";
};
kwin = {
"Window Maximize" = "Meta+Ctrl+Alt+M";
"Window Quick Tile Bottom" = "Meta+Ctrl+Alt+Down";
"Window Quick Tile Left" = "Meta+Ctrl+Alt+Left";
"Window Quick Tile Right" = "Meta+Ctrl+Alt+Right";
"Window Quick Tile Top" = "Meta+Ctrl+Alt+Up";
"Walk Through Windows" = "Meta+Tab";
"Walk Through Windows (Reverse)" = "Meta+Shift+Tab";
"Walk Through Windows of Current Application" = "Meta+`";
"Walk Through Windows of Current Application (Reverse)" = "Meta+Shift+`";
"Window Close" = "Meta+W";
"Overview" = "Ctrl+Meta+Tab";
"Switch One Desktop to the Right" = "none";
"Switch One Desktop to the Left" = "none";
};
plasmashell = {
"next activity" = "Meta+Ctrl+Right";
"previous activity" = "Meta+Ctrl+Left";
};
};
};
# TODO: Configure # TODO: Configure
# programs.ssh = { # programs.ssh = {
# enable = true; # enable = true;
@ -263,8 +266,8 @@ in
autoload -U +X bashcompinit && bashcompinit autoload -U +X bashcompinit && bashcompinit
source <(kubectl completion zsh) source <(${pkgs.kubectl}/bin/kubectl completion zsh)
complete -C '/usr/local/bin/aws_completer' aws complete -C '${pkgs.awscli2}/bin/aws_completer' aws
# Manual ghostty injection # Manual ghostty injection
if [[ -n $GHOSTTY_RESOURCES_DIR ]]; then if [[ -n $GHOSTTY_RESOURCES_DIR ]]; then
@ -299,6 +302,54 @@ in
Install.WantedBy = [ "timers.target" ]; Install.WantedBy = [ "timers.target" ];
}; };
# Total hack, not what HM is for
# Manually remove files if deleted here
home.activation.nfsRoute = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
/usr/bin/sudo ${pkgs.coreutils}/bin/ln -fs ${
pkgs.writeTextFile {
name = "nfs-route";
text = ''
# NFS
200 nfsroute
'';
}
} /etc/iproute2/rt_tables.d/20-nfs.conf
/usr/bin/sudo ${pkgs.coreutils}/bin/ln -fs ${pkgs.writeShellScript "nfs-route" ''
if [ "$IFACE" = "enp4s0" ]; then
if [ "$(ip route list table nfsroute exact 10.125.248.55 | grep enp4s0 | wc -l)" == "0" ]; then
ip route add 10.125.248.55 via 10.124.248.248 dev enp4s0 table nfsroute
fi
if [ "$(ip route list table nfsroute exact 10.125.248.33 | grep enp4s0 | wc -l)" == "0" ]; then
ip route add 10.125.248.33 via 10.124.248.248 dev enp4s0 table nfsroute
fi
if [ "$(ip rule list from 10.124.248.5 | ${pkgs.gnugrep}/bin/grep nfsroute | ${pkgs.coreutils}/bin/wc -l)" == "0" ]; then
ip rule add from 10.124.248.5 lookup nfsroute
fi
fi
''} /etc/network/if-up.d/nfs-route
/usr/bin/sudo ${pkgs.coreutils}/bin/mkdir -p /etc/network/if-post-down.d
/usr/bin/sudo ${pkgs.coreutils}/bin/ln -fs ${pkgs.writeShellScript "nfs-route" ''
if [ "$IFACE" = "enp4s0" ]; then
if [ "$(ip route list table nfsroute exact 10.125.248.55 | grep enp4s0 | wc -l)" != "0" ]; then
ip route del 10.125.248.55 via 10.124.248.248 dev enp4s0 table nfsroute
fi
if [ "$(ip route list table nfsroute exact 10.125.248.33 | grep enp4s0 | wc -l)" != "0" ]; then
ip route del 10.125.248.33 via 10.124.248.248 dev enp4s0 table nfsroute
fi
if [ "$(ip rule list from 10.124.248.5 | ${pkgs.gnugrep}/bin/grep nfsroute | ${pkgs.coreutils}/bin/wc -l)" != "0" ]; then
ip rule del from 10.124.248.5 lookup nfsroute
fi
fi
''} /etc/network/if-post-down.d/nfs-route
'';
home.sessionVariables = { home.sessionVariables = {
EDITOR = "vim"; EDITOR = "vim";
GO111MODULE = "on"; GO111MODULE = "on";

View File

@ -10,6 +10,18 @@ let
isLinux = pkgs.stdenv.hostPlatform.isLinux; isLinux = pkgs.stdenv.hostPlatform.isLinux;
in in
{ {
imports = [
(import ./nix-init-scripts.nix {
inherit lib pkgs;
})
];
home.packages = with pkgs; [
awscli2
kubectl
nixd
viu
];
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
@ -18,6 +30,71 @@ in
enable = true; enable = true;
}; };
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.fzf = {
enable = true;
enableZshIntegration = true;
};
programs.htop = {
enable = true;
};
programs.k9s = {
enable = true;
settings = {
k9s = {
refreshRate = 2;
ui = {
logoless = true;
headless = true;
skin = "darkerbg";
};
logger = {
tail = 1000;
sinceSeconds = 60 * 30;
fullScreen = true;
showtime = true;
};
};
};
skins = {
darkerbg = {
k9s = {
body = {
bgColor = "#333";
};
frame = {
title = {
bgColor = "#333";
};
};
views = {
table = {
bgColor = "#333";
header = {
bgColor = "#333";
};
};
logs = {
bgColor = "#333";
};
};
};
};
};
};
programs.jq = {
enable = true;
};
programs.vim = { programs.vim = {
enable = true; enable = true;
settings = { settings = {

View File

@ -15,9 +15,6 @@ in
(import ./veracode/aws-cli.nix { (import ./veracode/aws-cli.nix {
inherit homedir lib pkgs; inherit homedir lib pkgs;
}) })
(import ./nix-init-scripts.nix {
inherit lib pkgs;
})
]; ];
home.username = username; home.username = username;
@ -27,11 +24,7 @@ in
home.stateVersion = "24.11"; home.stateVersion = "24.11";
home.packages = with pkgs; [ home.packages = with pkgs; [
awscli2
hammerspoon hammerspoon
k9s
kubectl
nixd
pstree pstree
watch watch
colima colima
@ -42,38 +35,9 @@ in
home.file = { home.file = {
"${homedir}/Library/Application Support/com.mitchellh.ghostty/config" = { "${homedir}/Library/Application Support/com.mitchellh.ghostty/config" = {
text = '' text = ''
theme = "catppuccin-mocha" ${builtins.readFile ./shared/ghostty.config}
font-size = 14 font-size = 14
window-width = 9999
window-height = 9999
# unbind resize split
keybind = super+ctrl+down=unbind
keybind = super+ctrl+left=unbind
keybind = super+ctrl+up=unbind
keybind = super+ctrl+right=unbind
# unbind clear_window
keybind = super+k=unbind
# unbind goto split
keybind = super+alt+right=unbind
keybind = super+alt+down=unbind
keybind = super+alt+left=unbind
keybind = super+alt+up=unbind
keybind = super+k=new_split:down
keybind = super+l=new_split:right
keybind = super+ctrl+j=goto_split:top
keybind = super+ctrl+k=goto_split:bottom
keybind = super+ctrl+h=goto_split:left
keybind = super+ctrl+l=goto_split:right
keybind = super+shift+j=resize_split:up,10
keybind = super+shift+k=resize_split:down,10
keybind = super+shift+h=resize_split:left,10
keybind = super+shift+l=resize_split:right,10
''; '';
}; };
"${homedir}/.hammerspoon/init.lua" = { "${homedir}/.hammerspoon/init.lua" = {
@ -83,11 +47,6 @@ in
}; };
}; };
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.git = { programs.git = {
enable = true; enable = true;
userName = "Lukas Cech"; userName = "Lukas Cech";
@ -112,61 +71,6 @@ in
}; };
}; };
programs.htop = {
enable = true;
};
programs.jq = {
enable = true;
};
programs.k9s = {
enable = true;
settings = {
k9s = {
refreshRate = 2;
ui = {
logoless = true;
headless = true;
skin = "darkerbg";
};
logger = {
tail = 1000;
sinceSeconds = 60 * 30;
fullScreen = true;
showtime = true;
};
};
};
skins = {
darkerbg = {
k9s = {
body = {
bgColor = "#333";
};
frame = {
title = {
bgColor = "#333";
};
};
views = {
table = {
bgColor = "#333";
header = {
bgColor = "#333";
};
};
logs = {
bgColor = "#333";
};
};
};
};
};
};
programs.lsd = { programs.lsd = {
enable = true; enable = true;
enableAliases = true; enableAliases = true;
@ -186,27 +90,6 @@ in
}; };
}; };
programs.mcfly = {
enable = true;
enableZshIntegration = true;
keyScheme = "vim";
# TODO: Test
fuzzySearchFactor = 2;
settings = {
colors = {
menubar = {
bg = "black";
fg = "red";
};
darkmode = {
prompt = "cyan";
timing = "yellow";
};
};
};
};
programs.pay-respects = { programs.pay-respects = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;

View File

@ -54,6 +54,7 @@ in
{ {
programs.zsh.shellAliases = { programs.zsh.shellAliases = {
git-nix-clone = lib.mkDefault "${pkgs.writeShellScript "git-nix-clone" git-nix-clone}"; git-nix-clone = lib.mkDefault "${pkgs.writeShellScript "git-nix-clone" git-nix-clone}";
nix-prepare = lib.mkDefault "${pkgs.writeShellScript "nix-prepare" nix-prepare}";
}; };
} }

View File

@ -0,0 +1,31 @@
theme = "catppuccin-mocha"
window-width = 9999
window-height = 9999
# unbind resize split
keybind = super+ctrl+down=unbind
keybind = super+ctrl+left=unbind
keybind = super+ctrl+up=unbind
keybind = super+ctrl+right=unbind
# unbind clear_window
keybind = super+k=unbind
# unbind goto split
keybind = super+alt+right=unbind
keybind = super+alt+down=unbind
keybind = super+alt+left=unbind
keybind = super+alt+up=unbind
keybind = super+k=new_split:down
keybind = super+l=new_split:right
keybind = super+alt+j=goto_split:top
keybind = super+alt+k=goto_split:bottom
keybind = super+alt+h=goto_split:left
keybind = super+alt+l=goto_split:right
keybind = super+shift+j=resize_split:up,10
keybind = super+shift+k=resize_split:down,10
keybind = super+shift+h=resize_split:left,10
keybind = super+shift+l=resize_split:right,10