summaryrefslogtreecommitdiff
path: root/Rexfile
diff options
context:
space:
mode:
Diffstat (limited to 'Rexfile')
-rw-r--r--Rexfile51
1 files changed, 37 insertions, 14 deletions
diff --git a/Rexfile b/Rexfile
index 2672d0d..400a9f4 100644
--- a/Rexfile
+++ b/Rexfile
@@ -295,25 +295,46 @@ task 'home_tmux', sub {
desc 'Install tmux rocky overrides (C-g prefix for nested tmux)';
task 'home_tmux_rocky', sub {
- if ( $^O eq 'linux' && (hostname() // '') =~ /rocky/ ) {
- my $conf = "$HOME/.config/tmux/tmux.local.conf";
- my $line = "source-file ~/.config/tmux/tmux.rocky.conf";
-
- if ( -f $conf ) {
- my $content = do { local $/; open my $fh, '<', $conf or die $!; <$fh> };
- if ( $content !~ /\Q$line\E/ ) {
- Rex::Logger::info("Appending tmux.rocky.conf source to $conf");
- open my $fh, '>>', $conf or die $!;
- print $fh "\n$line\n";
- close $fh;
+ if ( $^O eq 'linux' ) {
+ my $hostname = `hostname 2>/dev/null` // '';
+ chomp $hostname;
+ if ( $hostname =~ /rocky/ ) {
+ my $line = "source-file ~/.config/tmux/tmux.rocky.conf";
+ my $local_conf = "$HOME/.config/tmux/tmux.local.conf";
+ my $main_conf = "$HOME/.config/tmux/tmux.conf";
+
+ # Clean up stale reference from tmux.local.conf (moved to end of tmux.conf)
+ if ( -f $local_conf ) {
+ my $content = do { local $/; open my $fh, '<', $local_conf or die $!; <$fh> };
+ if ( $content =~ /\Q$line\E/ ) {
+ $content =~ s/\n*\Q$line\E\n*/\n/;
+ open my $fh, '>', $local_conf or die $!;
+ print $fh $content;
+ close $fh;
+ Rex::Logger::info("Removed stale tmux.rocky.conf source from $local_conf");
+ }
}
- else {
- Rex::Logger::info("tmux.rocky.conf already sourced in $conf");
+
+ # Append to the END of tmux.conf so rocky colors override shared config
+ if ( -f $main_conf ) {
+ my $content = do { local $/; open my $fh, '<', $main_conf or die $!; <$fh> };
+ if ( $content !~ /\Q$line\E/ ) {
+ Rex::Logger::info("Appending tmux.rocky.conf source to end of $main_conf");
+ open my $fh, '>>', $main_conf or die $!;
+ print $fh "\n$line\n";
+ close $fh;
+ }
+ else {
+ Rex::Logger::info("tmux.rocky.conf already sourced in $main_conf");
+ }
}
}
+ else {
+ Rex::Logger::info( 'Skipping tmux rocky overrides (not on rocky)', 'warn' );
+ }
}
else {
- Rex::Logger::info( 'Skipping tmux rocky overrides (not on rocky)', 'warn' );
+ Rex::Logger::info( 'Skipping tmux rocky overrides (not on linux)', 'warn' );
}
};
@@ -476,6 +497,8 @@ task 'pkg_rocky', sub {
tig
tmux
vim-enhanced
+ helix
+ helix-themes
git
/;