Compare commits
22 Commits
2fedd15513
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 8ab411e742 | |||
| a4431f4ff3 | |||
| edc253a1f6 | |||
| 15f9d42b1c | |||
| 15e69604e0 | |||
| d134439d55 | |||
| 8afeb50d2c | |||
| 8a1762f58e | |||
| ee00d818be | |||
| e281c2392a | |||
| f9ade6a6d5 | |||
| 96a215c45c | |||
| 35e7769657 | |||
| cdbc030e30 | |||
| 66cf71c398 | |||
| e440a5d37f | |||
| 73de376805 | |||
| 95671e295c | |||
| 9ade6aa600 | |||
| fe75cdfebf | |||
| 3ab926e9ea | |||
| 0233563bd6 |
2
.config/ags/.gitignore
vendored
Normal file
2
.config/ags/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
node_modules/
|
||||
@girs/
|
||||
10
.config/ags/app.ts
Normal file
10
.config/ags/app.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { App } from "astal/gtk4"
|
||||
import style from "./style.scss"
|
||||
import Bar from "./widget/Bar"
|
||||
|
||||
App.start({
|
||||
css: style,
|
||||
main() {
|
||||
App.get_monitors().map(Bar)
|
||||
},
|
||||
})
|
||||
21
.config/ags/env.d.ts
vendored
Normal file
21
.config/ags/env.d.ts
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
declare const SRC: string
|
||||
|
||||
declare module "inline:*" {
|
||||
const content: string
|
||||
export default content
|
||||
}
|
||||
|
||||
declare module "*.scss" {
|
||||
const content: string
|
||||
export default content
|
||||
}
|
||||
|
||||
declare module "*.blp" {
|
||||
const content: string
|
||||
export default content
|
||||
}
|
||||
|
||||
declare module "*.css" {
|
||||
const content: string
|
||||
export default content
|
||||
}
|
||||
6
.config/ags/package.json
Normal file
6
.config/ags/package.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "astal-shell",
|
||||
"dependencies": {
|
||||
"astal": "/usr/share/astal/gjs"
|
||||
}
|
||||
}
|
||||
20
.config/ags/style.scss
Normal file
20
.config/ags/style.scss
Normal file
@@ -0,0 +1,20 @@
|
||||
// https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss
|
||||
$fg-color: #{"@theme_fg_color"};
|
||||
$bg-color: #{"@theme_bg_color"};
|
||||
|
||||
window.Bar {
|
||||
background: transparent;
|
||||
color: $fg-color;
|
||||
font-weight: bold;
|
||||
|
||||
>centerbox {
|
||||
background: $bg-color;
|
||||
border-radius: 10px;
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 8px;
|
||||
margin: 2px;
|
||||
}
|
||||
}
|
||||
14
.config/ags/tsconfig.json
Normal file
14
.config/ags/tsconfig.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"compilerOptions": {
|
||||
"experimentalDecorators": true,
|
||||
"strict": true,
|
||||
"target": "ES2022",
|
||||
"module": "ES2022",
|
||||
"moduleResolution": "Bundler",
|
||||
// "checkJs": true,
|
||||
// "allowJs": true,
|
||||
"jsx": "react-jsx",
|
||||
"jsxImportSource": "astal/gtk4",
|
||||
}
|
||||
}
|
||||
36
.config/ags/widget/Bar.tsx
Normal file
36
.config/ags/widget/Bar.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
import { App, Astal, Gtk, Gdk } from "astal/gtk4"
|
||||
import { Variable } from "astal"
|
||||
|
||||
const time = Variable("").poll(1000, "date")
|
||||
|
||||
export default function Bar(gdkmonitor: Gdk.Monitor) {
|
||||
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor
|
||||
|
||||
return <window
|
||||
visible
|
||||
cssClasses={["Bar"]}
|
||||
gdkmonitor={gdkmonitor}
|
||||
exclusivity={Astal.Exclusivity.EXCLUSIVE}
|
||||
anchor={TOP | LEFT | RIGHT}
|
||||
application={App}>
|
||||
<centerbox cssName="centerbox">
|
||||
<button
|
||||
onClicked="echo hello"
|
||||
hexpand
|
||||
halign={Gtk.Align.CENTER}
|
||||
>
|
||||
Welcome to AGS!
|
||||
</button>
|
||||
<box />
|
||||
<menubutton
|
||||
hexpand
|
||||
halign={Gtk.Align.CENTER}
|
||||
>
|
||||
<label label={time()} />
|
||||
<popover>
|
||||
<Gtk.Calendar />
|
||||
</popover>
|
||||
</menubutton>
|
||||
</centerbox>
|
||||
</window>
|
||||
}
|
||||
@@ -57,7 +57,7 @@ shape = "Block"
|
||||
TERM = "xterm-256color"
|
||||
|
||||
[font]
|
||||
size = 12
|
||||
size = 10
|
||||
|
||||
[font.bold]
|
||||
family = "JetBrainsMono Nerd Font"
|
||||
@@ -89,7 +89,7 @@ mouse = "Middle"
|
||||
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
|
||||
|
||||
[terminal]
|
||||
shell = "/bin/zsh"
|
||||
shell = "tmux"
|
||||
|
||||
[window]
|
||||
decorations = "full"
|
||||
|
||||
35
.config/hypr/hyprland.conf
Normal file
35
.config/hypr/hyprland.conf
Normal file
@@ -0,0 +1,35 @@
|
||||
$mainMod = SUPER
|
||||
|
||||
source = ~/.config/hypr/hyprland/general.conf
|
||||
source = ~/.config/hypr/hyprland/decoration.conf
|
||||
source = ~/.config/hypr/hyprland/animations.conf
|
||||
source = ~/.config/hypr/hyprland/input.conf
|
||||
source = ~/.config/hypr/hyprland/group.conf
|
||||
source = ~/.config/hypr/hyprland/binds.conf
|
||||
source = ~/.config/hypr/hyprland/xwayland.conf
|
||||
source = ~/.config/hypr/hyprland/opengl.conf
|
||||
source = ~/.config/hypr/hyprland/render.conf
|
||||
source = ~/.config/hypr/hyprland/cursor.conf
|
||||
source = ~/.config/hypr/hyprland/layout.conf
|
||||
|
||||
source = ~/.config/hypr/hyprland/monitors.conf
|
||||
source = ~/.config/hypr/hyprland/env.conf
|
||||
source = ~/.config/hypr/hyprland/rules.conf
|
||||
source = ~/.config/hypr/hyprland/autostart.conf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5
.config/hypr/hyprland/animations.conf
Normal file
5
.config/hypr/hyprland/animations.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
animations {
|
||||
enabled = true
|
||||
first_launch_animation = true
|
||||
# TODO
|
||||
}
|
||||
3
.config/hypr/hyprland/autostart.conf
Normal file
3
.config/hypr/hyprland/autostart.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
# Set Darkmode
|
||||
exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
|
||||
exec = swayosd-server
|
||||
89
.config/hypr/hyprland/binds.conf
Normal file
89
.config/hypr/hyprland/binds.conf
Normal file
@@ -0,0 +1,89 @@
|
||||
$mainMod = SUPER
|
||||
|
||||
# Resize
|
||||
binde = SUPERCTRL, left, resizeactive, -20 0
|
||||
binde = SUPERCTRL, right, resizeactive, 20 0
|
||||
binde = SUPERCTRL, up, resizeactive, 0 -20
|
||||
binde = SUPERCTRL, down, resizeactive, 0 20
|
||||
|
||||
|
||||
|
||||
# Launch
|
||||
bind = $mainMod, RETURN, exec, alacritty
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod SHIFT, X, exit,
|
||||
bind = $mainMod, D, exec, wofi --show drun -G
|
||||
bind = $mainMod, E, exec, dolphin
|
||||
#bind = $mainMod, P, exec, grim -g "$(slurp)" - | wl-copy
|
||||
|
||||
# AGS
|
||||
#bind = $mainMod, X, exec, ags -t session
|
||||
|
||||
# Window options
|
||||
bind = $mainMod, P, pseudo,
|
||||
bind = $mainMod, S, togglesplit,
|
||||
bind = $mainMod, F, fullscreen,
|
||||
bind = $mainMod, Space, togglefloating,
|
||||
|
||||
# Focus windows
|
||||
bind = $mainMod, H, movefocus, l
|
||||
bind = $mainMod, L, movefocus, r
|
||||
bind = $mainMod, K, movefocus, u
|
||||
bind = $mainMod, J, movefocus, d
|
||||
|
||||
# Move windows
|
||||
bind = $mainMod SHIFT, L, movewindow, r
|
||||
bind = $mainMod SHIFT, K, movewindow, u
|
||||
bind = $mainMod SHIFT, H, movewindow, l
|
||||
bind = $mainMod SHIFT, J, movewindow, d
|
||||
|
||||
# Switch workspaces
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Switch active window to workspace
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Scroll workspace with mouse scrollwhell
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move and resize windows with mouse too
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Special keys
|
||||
#bind = , Caps_lock, exec, swayosd-client --caps-lock
|
||||
|
||||
binde = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
|
||||
binde = , XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
|
||||
bind = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
|
||||
#bind = , XF86AudioPlayPause, exec, playerctl play-pause
|
||||
|
||||
#binde = , XF86MonBrightnessUp, exec, swayosd-client --brightness raise
|
||||
#binde = , XF86MonBrightnessDown, exec, swayosd-client --brightness lower
|
||||
|
||||
#bind = ,XF86AudioNext, exec, playerctl next
|
||||
#bind = ,XF86AudioPlay, exec, playerctl play-pause
|
||||
#bind = ,XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
#binde = , XF86KbdBrightnessUp, exec, brightnessctl --device='smc::kbd_backlight' set 10+
|
||||
#binde = , XF86KbdBrightnessDown, exec, brightnessctl --device='smc::kbd_backlight' set 10-
|
||||
|
||||
18
.config/hypr/hyprland/cursor.conf
Normal file
18
.config/hypr/hyprland/cursor.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
cursor {
|
||||
sync_gsettings_theme = true
|
||||
no_hardware_cursors = 2
|
||||
no_break_fs_vrr = false
|
||||
min_refresh_rate = 24
|
||||
hotspot_padding = 1
|
||||
inactive_timeout = 0
|
||||
no_warps = false
|
||||
persistent_warps = false
|
||||
warp_on_change_workspace = false
|
||||
default_monitor =
|
||||
zoom_factor = 1.0
|
||||
zoom_rigid = false
|
||||
enable_hyprcursor = true
|
||||
hide_on_key_press = false
|
||||
hide_on_touch = true
|
||||
# use_cpu_buffer = false
|
||||
}
|
||||
40
.config/hypr/hyprland/decoration.conf
Normal file
40
.config/hypr/hyprland/decoration.conf
Normal file
@@ -0,0 +1,40 @@
|
||||
decoration {
|
||||
rounding = 0
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
fullscreen_opacity = 1.0
|
||||
dim_inactive = false
|
||||
dim_strength = 0.5
|
||||
dim_special = 0.2
|
||||
dim_around = 0.4
|
||||
screen_shader =
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 8
|
||||
passes = 1
|
||||
ignore_opacity = true
|
||||
new_optimizations = true
|
||||
xray = true
|
||||
noise = 0.0117
|
||||
contrast = 0.8916
|
||||
brightness = 0.8172
|
||||
vibrancy = 0.1696
|
||||
vibrancy_darkness = 0.0
|
||||
special = false
|
||||
popups = false
|
||||
popups_ignorealpha = 0.2
|
||||
}
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 50
|
||||
render_power = 4
|
||||
sharp = false
|
||||
ignore_window = true
|
||||
color = rgba(000000aa)
|
||||
# color_inactive =
|
||||
offset = 0, 0
|
||||
scale = 1
|
||||
}
|
||||
}
|
||||
6
.config/hypr/hyprland/env.conf
Normal file
6
.config/hypr/hyprland/env.conf
Normal file
@@ -0,0 +1,6 @@
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
env = NVD_BACKEND,direct
|
||||
25
.config/hypr/hyprland/general.conf
Normal file
25
.config/hypr/hyprland/general.conf
Normal file
@@ -0,0 +1,25 @@
|
||||
general {
|
||||
border_size = 1
|
||||
no_border_on_floating = true
|
||||
gaps_in = 3
|
||||
gaps_out = 4
|
||||
gaps_workspaces = 0
|
||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.active_border = rgba(595959aa)
|
||||
col.nogroup_border = 0xffffaaff
|
||||
col.nogroup_border_active = 0xffff00ff
|
||||
layout = dwindle
|
||||
no_focus_fallback = false
|
||||
resize_on_border = false
|
||||
extend_border_grab_area = 15
|
||||
hover_icon_on_border = true
|
||||
allow_tearing = true
|
||||
resize_corner = 0
|
||||
|
||||
snap {
|
||||
enabled = false
|
||||
window_gap = 10
|
||||
monitor_gap = 10
|
||||
border_overlap = false
|
||||
}
|
||||
}
|
||||
31
.config/hypr/hyprland/group.conf
Normal file
31
.config/hypr/hyprland/group.conf
Normal file
@@ -0,0 +1,31 @@
|
||||
group {
|
||||
auto_group = true
|
||||
insert_after_current = true
|
||||
focus_removed_window = true
|
||||
drag_into_group = 1
|
||||
merge_groups_on_drag = true
|
||||
merge_groups_on_groupbar = true
|
||||
merge_floated_into_tiled_on_groupbar = false
|
||||
group_on_movetoworkspace = false
|
||||
col.border_active = 0x66ffff00
|
||||
col.border_inactive = 0x66777700
|
||||
col.border_locked_active = 0x66ff5500
|
||||
col.border_locked_inactive = 0x66775500
|
||||
|
||||
groupbar {
|
||||
enabled = true
|
||||
font_family =
|
||||
font_size = 8
|
||||
gradients = true
|
||||
height = 14
|
||||
stacked = false
|
||||
priority = 3
|
||||
render_titles = true
|
||||
scrolling = true
|
||||
text_color = 0xffffffff
|
||||
col.active = 0x66ffff00
|
||||
col.inactive = 0x66777700
|
||||
col.locked_active = 0x66ff5500
|
||||
col.locked_inactive = 0x66775500
|
||||
}
|
||||
}
|
||||
77
.config/hypr/hyprland/input.conf
Normal file
77
.config/hypr/hyprland/input.conf
Normal file
@@ -0,0 +1,77 @@
|
||||
input {
|
||||
#kb_model = pc105+inet
|
||||
kb_layout = us
|
||||
#kb_variant = intl
|
||||
kb_options =
|
||||
kb_rules =
|
||||
kb_file =
|
||||
numlock_by_default = false
|
||||
resolve_binds_by_sym = false
|
||||
repeat_rate = 25
|
||||
repeat_delay = 600
|
||||
sensitivity = 0.0
|
||||
accel_profile =
|
||||
force_no_accel = false
|
||||
left_handed = false
|
||||
scroll_points =
|
||||
scroll_method =
|
||||
scroll_button = 0
|
||||
scroll_button_lock = 0
|
||||
scroll_factor = 1.0
|
||||
natural_scroll = false
|
||||
follow_mouse = 1
|
||||
focus_on_close = 0
|
||||
mouse_refocus = true
|
||||
float_switch_override_focus = 1
|
||||
special_fallthrough = false
|
||||
off_window_axis_events = 1
|
||||
emulate_discrete_scroll = 1
|
||||
|
||||
touchpad {
|
||||
disable_while_typing = true
|
||||
natural_scroll = false
|
||||
scroll_factor = 1.0
|
||||
middle_button_emulation = false
|
||||
tap_button_map =
|
||||
clickfinger_behavior = false
|
||||
tap-to-click = true
|
||||
drag_lock = false
|
||||
tap-and-drag = true
|
||||
}
|
||||
|
||||
touchdevice {
|
||||
transform = 0
|
||||
output = Auto
|
||||
enabled = true
|
||||
}
|
||||
|
||||
tablet {
|
||||
transform = 0
|
||||
#output =
|
||||
region_position = 0, 0
|
||||
#absolute_region_position = false
|
||||
region_size = 0, 0
|
||||
relative_input = false
|
||||
left_handed = false
|
||||
active_area_size = 0, 0
|
||||
active_area_position = 0, 0
|
||||
}
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
workspace_swipe_fingers = 4
|
||||
workspace_swipe_min_fingers = false
|
||||
workspace_swipe_distance = 300
|
||||
workspace_swipe_touch = false
|
||||
workspace_swipe_invert = true
|
||||
workspace_swipe_touch_invert = false
|
||||
workspace_swipe_min_speed_to_force = 30
|
||||
workspace_swipe_cancel_ratio = 0.5
|
||||
workspace_swipe_create_new = true
|
||||
workspace_swipe_direction_lock = true
|
||||
workspace_swipe_direction_lock_threshold = 10
|
||||
workspace_swipe_forever = false
|
||||
workspace_swipe_use_r = false
|
||||
}
|
||||
|
||||
26
.config/hypr/hyprland/layout.conf
Normal file
26
.config/hypr/hyprland/layout.conf
Normal file
@@ -0,0 +1,26 @@
|
||||
dwindle {
|
||||
pseudotile = yes
|
||||
force_split = 0
|
||||
preserve_split = true
|
||||
smart_split = false
|
||||
smart_resizing = true
|
||||
permanent_direction_override = false
|
||||
special_scale_factor = 1
|
||||
split_width_multiplier = 1.0
|
||||
use_active_for_splits = true
|
||||
default_split_ratio = 1.0
|
||||
split_bias = 0
|
||||
}
|
||||
|
||||
master {
|
||||
allow_small_split = false
|
||||
special_scale_factor = 1
|
||||
mfact = 0.55
|
||||
new_status = true
|
||||
new_on_top = false
|
||||
new_on_active = none
|
||||
orientation = left
|
||||
inherit_fullscreen = true
|
||||
smart_resizing = true
|
||||
drop_at_cursor = true
|
||||
}
|
||||
34
.config/hypr/hyprland/misc.conf
Normal file
34
.config/hypr/hyprland/misc.conf
Normal file
@@ -0,0 +1,34 @@
|
||||
misc {
|
||||
disable_hyprland_logo = false
|
||||
disable_splash_rendering = false
|
||||
col.splash = 0xffffffff
|
||||
font_family = JetBrainsMono Nerd Font
|
||||
splash_font_family =
|
||||
force_default_wallpaper = 2
|
||||
vfr = true
|
||||
vrr = 1
|
||||
mouse_move_enables_dpms = false
|
||||
key_press_enables_dpms = false
|
||||
always_follow_on_dnd = true
|
||||
layers_hog_keyboard_focus = true
|
||||
animate_manual_resizes = true
|
||||
animate_mouse_windowdragging = false
|
||||
disable_autoreload = false
|
||||
enable_swallow = true
|
||||
swallow_regex =
|
||||
swallow_exception_regex =
|
||||
focus_on_activate = false
|
||||
mouse_move_focuses_monitor = true
|
||||
render_ahead_of_time = false
|
||||
render_ahead_safezone = 1
|
||||
allow_session_lock_restore = false
|
||||
background_color = 0x111111
|
||||
close_special_on_empty = true
|
||||
new_window_takes_over_fullscreen = 0
|
||||
exit_window_retains_fullscreen = false
|
||||
initial_workspace_tracking = 1
|
||||
middle_click_paste = true
|
||||
render_unfocused_fps = 15
|
||||
disable_xdg_env_checks = false
|
||||
lockdead_screen_delay = 1000
|
||||
}
|
||||
1
.config/hypr/hyprland/monitors.conf
Normal file
1
.config/hypr/hyprland/monitors.conf
Normal file
@@ -0,0 +1 @@
|
||||
monitor=DP-2,2560x1440@144,auto,1
|
||||
4
.config/hypr/hyprland/opengl.conf
Normal file
4
.config/hypr/hyprland/opengl.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
opengl {
|
||||
nvidia_anti_flicker = true
|
||||
force_introspection = 2
|
||||
}
|
||||
6
.config/hypr/hyprland/render.conf
Normal file
6
.config/hypr/hyprland/render.conf
Normal file
@@ -0,0 +1,6 @@
|
||||
render {
|
||||
explicit_sync = 2
|
||||
explicit_sync_kms = 2
|
||||
direct_scanout = false
|
||||
expand_undersized_textures = true
|
||||
}
|
||||
13
.config/hypr/hyprland/rules.conf
Normal file
13
.config/hypr/hyprland/rules.conf
Normal file
@@ -0,0 +1,13 @@
|
||||
windowrulev2 = float, title:^(Picture-in-Picture)$
|
||||
windowrulev2 = pin, title:^(Picture-in-Picture)$
|
||||
windowrulev2 = move 72% 72%, title:^(Picture-in-Picture)$
|
||||
windowrulev2 = size 25% 25%, title:^(Picture-in-Picture)$
|
||||
|
||||
windowrulev2 = opacity 0.0 override 0.0 override, class:^(xwaylandvideobridge)$
|
||||
windowrulev2 = noanim, class:^(xwaylandvideobridge)$
|
||||
windowrulev2 = nofocus, class:^(xwaylandvideobridge)$
|
||||
windowrulev2 = noinitialfocus, class:^(xwaylandvideobridge)$
|
||||
|
||||
windowrulev2 = stayfocused, title:^()$,class:^(steam)$
|
||||
windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$
|
||||
windowrulev2 = noblur, class:^(steam)$
|
||||
5
.config/hypr/hyprland/xwayland.conf
Normal file
5
.config/hypr/hyprland/xwayland.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
xwayland {
|
||||
enabled = true
|
||||
use_nearest_neighbor = true
|
||||
force_zero_scaling = true
|
||||
}
|
||||
5
.config/nvim/.luarc.json
Normal file
5
.config/nvim/.luarc.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"diagnostics.globals": [
|
||||
"vim"
|
||||
]
|
||||
}
|
||||
15
.config/nvim/init.lua
Normal file
15
.config/nvim/init.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable",
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("vim-options")
|
||||
require("lazy").setup("plugins")
|
||||
27
.config/nvim/lazy-lock.json
Normal file
27
.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "0f7bbce41ea152a94d12aea286f2ce98e63c0f58" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
||||
"catppuccin": { "branch": "main", "commit": "faf15ab0201b564b6368ffa47b56feefc92ce3f4" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "56ead98e05bb37a4ec28930a54d836d033cf00f2" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "43894adcf10bb1190c2184bd7c1750e8ea2b3dce" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
|
||||
"none-ls-extras.nvim": { "branch": "main", "commit": "f50d4dece9f91813f049f8100d188933f7d654d9" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "1f2bf17eddfdd45aed254b6922c6c68b933dba9e" },
|
||||
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "ed31156aa2cc14e3bc066c59357cc91536a2bc01" },
|
||||
"nvim-dap": { "branch": "master", "commit": "cc92b054720a96170eca6bd9bdedd43d2b0a7a8a" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "dafd61d6533bd90ecf6e2a3a972298fdddc74d82" },
|
||||
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "d14bc4bd15a7b9b5a9e7977c6a28f2cab6c4ad4a" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "edbe0a65cfacbbfff6a4a1e98ddd60c28c560509" },
|
||||
"oxocarbon.nvim": { "branch": "main", "commit": "004777819ba294423b638a35a75c9f0c7be758ed" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }
|
||||
}
|
||||
2
.config/nvim/lua/plugins.lua
Normal file
2
.config/nvim/lua/plugins.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
return {}
|
||||
|
||||
31
.config/nvim/lua/plugins/alpha.lua
Normal file
31
.config/nvim/lua/plugins/alpha.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
return {
|
||||
"goolord/alpha-nvim",
|
||||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
|
||||
config = function()
|
||||
local alpha = require("alpha")
|
||||
local dashboard = require("alpha.themes.startify")
|
||||
|
||||
dashboard.section.header.val = {
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ████ ██████ █████ ██ ]],
|
||||
[[ ███████████ █████ ]],
|
||||
[[ █████████ ███████████████████ ███ ███████████ ]],
|
||||
[[ █████████ ███ █████████████ █████ ██████████████ ]],
|
||||
[[ █████████ ██████████ █████████ █████ █████ ████ █████ ]],
|
||||
[[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]],
|
||||
[[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
}
|
||||
|
||||
alpha.setup(dashboard.opts)
|
||||
end,
|
||||
}
|
||||
9
.config/nvim/lua/plugins/catpuccin.lua
Normal file
9
.config/nvim/lua/plugins/catpuccin.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"catppuccin/nvim",
|
||||
lazy = false,
|
||||
name = "catppuccin",
|
||||
priority = 1000,
|
||||
config = function()
|
||||
-- vim.cmd.colorscheme("catppuccin")
|
||||
end,
|
||||
}
|
||||
44
.config/nvim/lua/plugins/completions.lua
Normal file
44
.config/nvim/lua/plugins/completions.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
return {
|
||||
{
|
||||
"hrsh7th/cmp-nvim-lsp"
|
||||
},
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
dependencies = {
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"rafamadriz/friendly-snippets",
|
||||
},
|
||||
},
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
config = function()
|
||||
local cmp = require("cmp")
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.abort(),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
}, {
|
||||
{ name = "buffer" },
|
||||
}),
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
26
.config/nvim/lua/plugins/debugging.lua
Normal file
26
.config/nvim/lua/plugins/debugging.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
return {
|
||||
"mfussenegger/nvim-dap",
|
||||
dependencies = {
|
||||
"rcarriga/nvim-dap-ui",
|
||||
"nvim-neotest/nvim-nio",
|
||||
},
|
||||
config = function()
|
||||
local dap, dapui = require("dap"), require("dapui")
|
||||
|
||||
dap.listeners.before.attach.dapui_config = function()
|
||||
dapui.open()
|
||||
end
|
||||
dap.listeners.before.launch.dapui_config = function()
|
||||
dapui.open()
|
||||
end
|
||||
dap.listeners.before.event_terminated.dapui_config = function()
|
||||
dapui.close()
|
||||
end
|
||||
dap.listeners.before.event_exited.dapui_config = function()
|
||||
dapui.close()
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<Leader>dt", dap.toggle_breakpoint, {})
|
||||
vim.keymap.set("n", "<Leader>dc", dap.continue, {})
|
||||
end,
|
||||
}
|
||||
39
.config/nvim/lua/plugins/lsp-config.lua
Normal file
39
.config/nvim/lua/plugins/lsp-config.lua
Normal file
@@ -0,0 +1,39 @@
|
||||
return {
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
lazy = false,
|
||||
config = function()
|
||||
require("mason").setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
lazy = false,
|
||||
opts = {
|
||||
auto_install = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
lazy = false,
|
||||
config = function()
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
|
||||
local lspconfig = require("lspconfig")
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
lspconfig.ts_ls.setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
lspconfig.rust_analyzer.setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
|
||||
vim.keymap.set("n", "<leader>gd", vim.lsp.buf.definition, {})
|
||||
vim.keymap.set("n", "<leader>gr", vim.lsp.buf.references, {})
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {})
|
||||
end,
|
||||
},
|
||||
}
|
||||
13
.config/nvim/lua/plugins/lualine.lua
Normal file
13
.config/nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = "auto",
|
||||
component_seperator = "|",
|
||||
section_separators = { left = "", right = "" },
|
||||
},
|
||||
},
|
||||
}
|
||||
23
.config/nvim/lua/plugins/neo-tree.lua
Normal file
23
.config/nvim/lua/plugins/neo-tree.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
return {
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
branch = "v3.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
config = function()
|
||||
require("neo-tree").setup({
|
||||
filesystem = {
|
||||
filtered_items = {
|
||||
visible = true,
|
||||
show_hidden_count = true,
|
||||
hide_dotfiles = false,
|
||||
hide_gitignored = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<C-n>", ":Neotree filesystem reveal left<CR>", {})
|
||||
end,
|
||||
}
|
||||
19
.config/nvim/lua/plugins/none-ls.lua
Normal file
19
.config/nvim/lua/plugins/none-ls.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
return {
|
||||
"nvimtools/none-ls.nvim",
|
||||
dependencies = {
|
||||
"nvimtools/none-ls-extras.nvim"
|
||||
},
|
||||
config = function()
|
||||
local null_ls = require("null-ls")
|
||||
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
null_ls.builtins.formatting.stylua,
|
||||
null_ls.builtins.formatting.prettier,
|
||||
require("none-ls.diagnostics.eslint"),
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>gf", vim.lsp.buf.format, {})
|
||||
end,
|
||||
}
|
||||
7
.config/nvim/lua/plugins/oxocarbon.lua
Normal file
7
.config/nvim/lua/plugins/oxocarbon.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
return {
|
||||
"nyoom-engineering/oxocarbon.nvim",
|
||||
config = function()
|
||||
vim.opt.background = "dark"
|
||||
vim.cmd.colorscheme "oxocarbon"
|
||||
end
|
||||
}
|
||||
26
.config/nvim/lua/plugins/telescope.lua
Normal file
26
.config/nvim/lua/plugins/telescope.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
return {
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
tag = "0.1.5",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
config = function()
|
||||
local builtin = require("telescope.builtin")
|
||||
vim.keymap.set("n", "<C-p>", builtin.find_files, {})
|
||||
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {}) -- ripgrep is needed for this to work
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-ui-select.nvim",
|
||||
config = function()
|
||||
require("telescope").setup({
|
||||
extentsions = {
|
||||
["ui-select"] = {
|
||||
require("telescope.themes").get_dropdown({}),
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require("telescope").load_extension("ui-select")
|
||||
end,
|
||||
},
|
||||
}
|
||||
12
.config/nvim/lua/plugins/treesitter.lua
Normal file
12
.config/nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
config = function()
|
||||
local config = require("nvim-treesitter.configs")
|
||||
config.setup({
|
||||
auto_install = true,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
})
|
||||
end,
|
||||
}
|
||||
10
.config/nvim/lua/vim-options.lua
Normal file
10
.config/nvim/lua/vim-options.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
vim.cmd("set expandtab")
|
||||
vim.cmd("set tabstop=2")
|
||||
vim.cmd("set softtabstop=2")
|
||||
vim.cmd("set shiftwidth=2")
|
||||
vim.g.mapleader = " "
|
||||
vim.g.backgrounf = "light"
|
||||
|
||||
vim.opt.swapfile = false
|
||||
|
||||
vim.wo.number = true
|
||||
74
.config/ohmyposh/zen.toml
Normal file
74
.config/ohmyposh/zen.toml
Normal file
@@ -0,0 +1,74 @@
|
||||
version = 3
|
||||
final_space = true
|
||||
|
||||
[[blocks]]
|
||||
type = 'prompt'
|
||||
alignment = 'left'
|
||||
newline = true
|
||||
|
||||
[[blocks.segments]]
|
||||
type = 'path'
|
||||
style = 'plain'
|
||||
backgound = 'transparent'
|
||||
foreground = 'blue'
|
||||
template = '{{ .Path }}'
|
||||
|
||||
[blocks.segments.properties]
|
||||
style = 'full'
|
||||
|
||||
[[blocks.segments]]
|
||||
type = 'git'
|
||||
style = 'plain'
|
||||
background = 'transparent'
|
||||
foreground = 'p:grey'
|
||||
template = ' {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}*{{ end }} <cyan>{{ if gt .Behind 0 }}⇣{{ end }}{{ if gt .Ahead 0 }}⇡{{ end }}</>'
|
||||
|
||||
[blocks.segments.properties]
|
||||
branch_icon = ''
|
||||
commit_icon = '@'
|
||||
fetch_status = true
|
||||
|
||||
[[blocks]]
|
||||
type = 'rprompt'
|
||||
overflow = 'hidden'
|
||||
|
||||
[[blocks.segments]]
|
||||
type = 'executiontime'
|
||||
style = 'plain'
|
||||
background = 'transparent'
|
||||
foreground = 'yellow'
|
||||
template = '{{ .FormattedMs }}'
|
||||
|
||||
[blocks.segments.properties]
|
||||
threshold = 5000
|
||||
|
||||
[[blocks]]
|
||||
type = 'prompt'
|
||||
alignment = 'left'
|
||||
newline = true
|
||||
|
||||
[[blocks.segments]]
|
||||
type = 'text'
|
||||
style = 'plain'
|
||||
background = 'transparent'
|
||||
foreground_templates = [
|
||||
"{{if gt .Code 0}}red{{end}}",
|
||||
"{{if eq .Code 0}}magenta{{end}}",
|
||||
]
|
||||
template = '❯'
|
||||
|
||||
[transient_prompt]
|
||||
background = 'transparent'
|
||||
foreground_templates = [
|
||||
"{{if gt .Code 0}}red{{end}}",
|
||||
"{{if eq .Code 0}}magenta{{end}}",
|
||||
]
|
||||
template = '❯ '
|
||||
|
||||
[secondary_prompt]
|
||||
foreground = 'magenta'
|
||||
background = 'transparent'
|
||||
template = '❯❯ '
|
||||
|
||||
[palette]
|
||||
grey = "#6c6c6c"
|
||||
9
.config/ohmyposh/zen.toml.bak
Normal file
9
.config/ohmyposh/zen.toml.bak
Normal file
@@ -0,0 +1,9 @@
|
||||
#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
|
||||
|
||||
version = 2
|
||||
final_space = true
|
||||
console_title_template = '{{ .Shell }} in {{ .Folder }}'
|
||||
|
||||
[[blocks]]
|
||||
type = 'prompt'
|
||||
alignment = 'left'
|
||||
38
.config/scripts/daily_sec_check.sh
Normal file
38
.config/scripts/daily_sec_check.sh
Normal file
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set the directory for report storage
|
||||
REPORT_DIR="$HOME/.config/sec"
|
||||
|
||||
# Create the directory if it doesn't exist
|
||||
mkdir -p "$REPORT_DIR"
|
||||
|
||||
# Get the current date
|
||||
DATE=$(date +"%Y-%m-%d")
|
||||
|
||||
# Define report filenames based on the date
|
||||
LINPEAS_REPORT="$REPORT_DIR/linpeas_report_$DATE.txt"
|
||||
LSE_REPORT="$REPORT_DIR/lse_report_$DATE.txt"
|
||||
|
||||
# Check if today's reports already exist
|
||||
if [ -f "$LINPEAS_REPORT" ] && [ -f "$LSE_REPORT" ]; then
|
||||
echo "Reports for $DATE already exist. Exiting."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Run linpeas if the report doesn't exist
|
||||
if [ ! -f "$LINPEAS_REPORT" ]; then
|
||||
echo "Running linpeas..."
|
||||
curl -sSL https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | bash > "$LINPEAS_REPORT" 2>&1
|
||||
echo "linpeas report saved to $LINPEAS_REPORT"
|
||||
else
|
||||
echo "linpeas report already exists: $LINPEAS_REPORT"
|
||||
fi
|
||||
|
||||
# Run lse if the report doesn't exist
|
||||
if [ ! -f "$LSE_REPORT" ]; then
|
||||
echo "Running linux-smart-enumeration (lse)..."
|
||||
curl -sSL https://github.com/diego-treitos/linux-smart-enumeration/releases/latest/download/lse.sh | bash > "$LSE_REPORT" 2>&1
|
||||
echo "lse report saved to $LSE_REPORT"
|
||||
else
|
||||
echo "lse report already exists: $LSE_REPORT"
|
||||
fi
|
||||
1
.config/tmux/plugins/catppuccin-tmux
Submodule
1
.config/tmux/plugins/catppuccin-tmux
Submodule
Submodule .config/tmux/plugins/catppuccin-tmux added at b4e0715356
1
.config/tmux/plugins/oxocarbon-tmux
Submodule
1
.config/tmux/plugins/oxocarbon-tmux
Submodule
Submodule .config/tmux/plugins/oxocarbon-tmux added at 5d9b32341c
1
.config/tmux/plugins/tmux
Submodule
1
.config/tmux/plugins/tmux
Submodule
Submodule .config/tmux/plugins/tmux added at 179572333b
1
.config/tmux/plugins/tmux-sensible
Submodule
1
.config/tmux/plugins/tmux-sensible
Submodule
Submodule .config/tmux/plugins/tmux-sensible added at 25cb91f42d
1
.config/tmux/plugins/tmux-yank
Submodule
1
.config/tmux/plugins/tmux-yank
Submodule
Submodule .config/tmux/plugins/tmux-yank added at acfd36e4fc
1
.config/tmux/plugins/tpm
Submodule
1
.config/tmux/plugins/tpm
Submodule
Submodule .config/tmux/plugins/tpm added at 99469c4a9b
1
.config/tmux/plugins/vim-tmux-navigator
Submodule
1
.config/tmux/plugins/vim-tmux-navigator
Submodule
Submodule .config/tmux/plugins/vim-tmux-navigator added at 424b5caa15
52
.config/tmux/tmux.conf
Normal file
52
.config/tmux/tmux.conf
Normal file
@@ -0,0 +1,52 @@
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
set -g mouse on
|
||||
|
||||
unbind C-b
|
||||
set -g prefix C-Space
|
||||
bind C-Space send-prefix
|
||||
|
||||
# Vim style pane selection
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# Start windows and panes at 1, not 0
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# Use Alt-arrow keys without prefix key to switch panes
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
|
||||
# Shift arrow to switch windows
|
||||
bind -n S-Left previous-window
|
||||
bind -n S-Right next-window
|
||||
|
||||
# Shift Alt vim keys to switch windows
|
||||
bind -n M-H previous-window
|
||||
bind -n M-L next-window
|
||||
|
||||
set -g @catppuccin_flavour 'mocha'
|
||||
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'dreamsofcode-io/catppuccin-tmux'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
|
||||
# set vi-mode
|
||||
set-window-option -g mode-keys vi
|
||||
# keybindings
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||
|
||||
bind '"' split-window -v -c "#{pane_current_path}"
|
||||
bind % split-window -h -c "#{pane_current_path}"
|
||||
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
[submodule ".tmux/plugins/tpm"]
|
||||
path = .tmux/plugins/tpm
|
||||
url = https://github.com/tmux-plugins/tpm
|
||||
[submodule ".config/tmux/plugins/oxocarbon-tmux"]
|
||||
path = .config/tmux/plugins/oxocarbon-tmux
|
||||
url = https://github.com/NicolaiVdS/oxocarbon-tmux
|
||||
1
.tmux/plugins/tpm
Submodule
1
.tmux/plugins/tpm
Submodule
Submodule .tmux/plugins/tpm added at 99469c4a9b
74
.zshrc
74
.zshrc
@@ -1,6 +1,70 @@
|
||||
# Defaults from bash
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
#PS1='[\u@\h \W]\$ '
|
||||
|
||||
# Set the directory we want to store zinit and plugins
|
||||
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/shere}/zinit/zinit.git"
|
||||
|
||||
# Download Zinit, if it's not there yet
|
||||
if [ ! -d "$ZINIT_HOME" ]; then
|
||||
mkdir -p "$(dirname $ZINIT_HOME)"
|
||||
git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
|
||||
fi
|
||||
|
||||
# Source/Load zinit
|
||||
source "${ZINIT_HOME}/zinit.zsh"
|
||||
|
||||
# Add in zsh plugins
|
||||
zinit light zsh-users/zsh-syntax-highlighting
|
||||
zinit light zsh-users/zsh-completions
|
||||
zinit light zsh-users/zsh-autosuggestions
|
||||
zinit light Aloxaf/fzf-tab
|
||||
|
||||
# Add in snippets
|
||||
zinit snippet OMZP::git
|
||||
zinit snippet OMZP::sudo
|
||||
zinit snippet OMZP::archlinux
|
||||
zinit snippet OMZP::command-not-found
|
||||
|
||||
# Load completions
|
||||
autoload -U compinit && compinit
|
||||
|
||||
zinit cdreplay -q
|
||||
|
||||
eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)"
|
||||
|
||||
# Keybinds
|
||||
bindkey '^p' history-search-backward
|
||||
bindkey '^n' history-search-forward
|
||||
|
||||
# History
|
||||
HISTSIZE=5000
|
||||
HISTFILE=~/.zsh_history
|
||||
SAVEHIST=$HISTSIZE
|
||||
HISTDUP=erase
|
||||
setopt appendhistory
|
||||
setopt sharehistory
|
||||
setopt hist_ignore_space
|
||||
setopt hist_ignore_all_dups
|
||||
setopt hist_save_no_dups
|
||||
setopt hist_ignore_dups
|
||||
setopt hist_find_no_dups
|
||||
|
||||
# Completion styling
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||||
zstyle ':completion:*' menu no
|
||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
||||
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
|
||||
|
||||
# Aliases
|
||||
alias ls='ls --color'
|
||||
alias vi='nvim'
|
||||
alias vim='nvim'
|
||||
alias nvim='nvim'
|
||||
alias c='clear'
|
||||
|
||||
# Shell integrations
|
||||
eval "$(fzf --zsh)"
|
||||
eval "$(zoxide init --cmd cd zsh)"
|
||||
|
||||
source /usr/share/nvm/init-nvm.sh
|
||||
|
||||
|
||||
64
CHEATSHEETS.md
Normal file
64
CHEATSHEETS.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Tmux Cheatsheet
|
||||
|
||||
## Prefix Key
|
||||
- `Ctrl + Space`: Prefix key (instead of default `Ctrl + B`)
|
||||
|
||||
## Session Management
|
||||
- `tmux new -s <name>`: Create new session
|
||||
- `tmux attach -t <name>`: Attach to existing session
|
||||
- `tmux ls`: List sessions
|
||||
- `tmux kill-session -t <name>`: Kill a specific session
|
||||
|
||||
## Window Navigation
|
||||
- `Shift + Left Arrow`: Previous window
|
||||
- `Shift + Right Arrow`: Next window
|
||||
- `Alt + H`: Previous window
|
||||
- `Alt + L`: Next window
|
||||
|
||||
## Pane Navigation
|
||||
- `Alt + Arrow Keys`: Switch between panes
|
||||
- `Ctrl + Space` + `h`: Move to left pane
|
||||
- `Ctrl + Space` + `j`: Move to down pane
|
||||
- `Ctrl + Space` + `k`: Move to up pane
|
||||
- `Ctrl + Space` + `l`: Move to right pane
|
||||
|
||||
## Pane Management
|
||||
- `Ctrl + Space` + `"`: Split window vertically (current path)
|
||||
- `Ctrl + Space` + `%`: Split window horizontally (current path)
|
||||
- `Ctrl + Space` + `x`: Close current pane
|
||||
|
||||
## Copy Mode (Vi-style)
|
||||
- `Ctrl + Space` + `[`: Enter copy mode
|
||||
- `v`: Start selection
|
||||
- `Ctrl + v`: Toggle rectangle selection
|
||||
- `y`: Copy selection and exit copy mode
|
||||
|
||||
## Resize Panes
|
||||
- `Ctrl + Space` + `(Hold) Arrow Keys`: Resize panes
|
||||
|
||||
## Misc
|
||||
- `Ctrl + Space` + `r`: Reload tmux config
|
||||
- `Ctrl + Space` + `?`: List all key bindings
|
||||
|
||||
## Installed Plugins
|
||||
- TPM (Tmux Plugin Manager)
|
||||
- tmux-sensible
|
||||
- vim-tmux-navigator
|
||||
- Catppuccin theme
|
||||
- tmux-yank (for clipboard integration)
|
||||
|
||||
## Mouse Mode
|
||||
- Enabled by default
|
||||
- Click to switch panes
|
||||
- Scroll through pane content
|
||||
- Resize panes by dragging
|
||||
|
||||
## Configuration Details
|
||||
- Base index starts at 1 (windows and panes)
|
||||
- Vi mode enabled for copy mode
|
||||
- Automatic window renumbering
|
||||
- Catppuccin Mocha color theme
|
||||
|
||||
## Pro Tips
|
||||
- Use `Ctrl + Space` + `d` to detach from session
|
||||
- Sessions persist after detaching
|
||||
Reference in New Issue
Block a user