UKKLTWOMVXH3XV5LGMIPIWEEWTNV4F3D4ZQ7VRA3AXQ2YZ3J5NEAC
O2YKRH5TJM7K7KOMODFRQJ45MB4QPRH7JHAJKEJOFCGYBJ25D4UAC
3VB56R4BDM6GOZB3EEUKZSGYYHLESM3SG2X5GTFQZZRDUYD6Y44QC
VJWQP4DXJRA4UJRYBWIRFT5T76ZO6KE2IQCLAO5EAXWOZH2LRAVQC
UKVJ7HJMKO4XDQGIUFPCFZASXFL2FRPXE5LU72YJYB3Q6WMMYYOAC
Q2YTDYKLSHITWAY5RNXWDWHZTOQG4JQSVF4BQAPFAIS3LSPOEKNAC
NJJQVY7HLGSS3EHEWFUDZQ2FDZOSC3ZONE4IKGPHER26SDLCEM7QC
S6AGIE6QJGWPCDD2QLTNFG7C6YALEJWXNYL32XQ2FB6TFT5FVR5AC
6ZFYETSB2X4X6J4DMADPH3CVRBWCZQMBQ27AOWWHUBBANNB7P63AC
5BZE67D2L7H3XY2EUHO6OBE77HI7PXVS2JWSHHWCVIDZWC2SHSNAC
LQIUZJSRW5BT3CJESIDGOOUAE6WUGVAYXGCSE5EJ2CK23UDOG5RQC
ZEYQU7OSRCS5C3GXTFWYXO6ZJ5XAV5S5EM7MOOOOKZ64XEA4YNLAC
'(ansible-doc ansible company-ansible company-mode company-shell dockerfile-mode eglot go-mode groovy-mode jinja2-mode magit magit-delta markdown-mode markdownfmt mermaid-mode modus-themes rainbow-delimiters rustic tree-sitter-langs use-package yaml-mode))
'(tree-sitter ansible-doc ansible company-ansible company-mode company-shell dockerfile-mode eglot go-mode groovy-mode jinja2-mode magit magit-delta markdown-mode markdownfmt mermaid-mode modus-themes rainbow-delimiters rustic tree-sitter-langs use-package yaml-mode))
'(safe-local-variable-values '((markdownfmt-enable-on-save . t)))
'(safe-local-variable-values
'((vc-prepare-patches-separately)
(diff-add-log-use-relative-names . t)
(vc-git-annotate-switches . "-w")
(markdownfmt-enable-on-save . t)))
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8
exec --no-startup-id ibus-daemon -drx
exec --no-startup-id fx
#exec --no-startup-id sk
exec --no-startup-id $TERMINAL
#exec --no-startup-id $TERMINAL
exec --no-startup-id keepassxc
exec --no-startup-id org.keepassxc.KeePassXC
exec --no-startup-id ~/github/commercial-emacs/src/emacs
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec $TERMINAL
# kill focused window
bindsym $mod+Shift+apostrophe kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id dmenu_run -fn sans
default_border pixel 1
hide_edge_borders smart
set $main Virtual1
set $side Virtual2
workspace 1 output $side $main
workspace 2 output $main
workspace 8 output $main
workspace 3 output $main
assign [class="(?i)navigator"] 3
assign [class="(?i)firefox"] 3
workspace 4 output $main
assign [class="(?i)emacs"] 4
workspace 6 output $side $main
assign [class="(?i)skype"] 6
for_window [class="(?i)skype"] floating disable
workspace 7 output $main
assign [class="(?i)telegram"] 7
workspace 9 output $side $main
assign [class="(?i)keepassxc"] 9
# change focus
bindsym $mod+h focus left
bindsym $mod+t focus down
bindsym $mod+c focus up
bindsym $mod+n focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+t move down
bindsym $mod+Shift+c move up
bindsym $mod+Shift+n move right
# enter fullscreen mode for the focused container
bindsym $mod+u fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+o layout stacking
bindsym $mod+comma layout tabbed
bindsym $mod+period layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
# reload the configuration file
bindsym $mod+Shift+j reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+p restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+period exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the window’s width.
# Pressing right will grow the window’s width.
# Pressing up will shrink the window’s height.
# Pressing down will grow the window’s height.
bindsym h resize shrink width 10 px or 10 ppt
bindsym t resize grow height 10 px or 10 ppt
bindsym n resize shrink height 10 px or 10 ppt
bindsym s resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+p mode "default"
}
bindsym $mod+p mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status-rs
}
[protocol]
version = 2
[pull]
rebase = true
[merge]
autoStash = true
[diff]
external = difft
colorMoved = dimmed-zebra
algorithm = patience
[pager]
diff = delta
reflog = delta
show = delta
[delta]
features = decorations
EDITOR=emacsclient
ALTERNATE_EDITOR=""
BAT_THEME=ansi
KUBECTL_EXTERNAL_DIFF=difft
XDG_DATA_DIRS=/home/hieuhg/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share
PATH=/sbin/:/bin/:/home/hieuhg/run/:/home/hieuhg/.cargo/bin/:/home/hieuhg/.local/share/flatpak/exports/bin/
BROWSER=firefox
TERMINAL=wezterm
#TERMINAL=org.wezfurlong.wezterm
#TERMINAL=terminator
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus
PKG_CONFIG_PATH=/home/hieuhg/.local/lib/pkgconfig
LD_LIBRARY_PATH=/home/hieuhg/.local/lib/
# source ~/.cache/starship/init.nu
let-env STARSHIP_SHELL = "nu"
let-env STARSHIP_SESSION_KEY = (random chars -l 16)
def starship_prompt [] {
# jobs are not supported
# status is not supported
^starship prompt --cmd-duration $env.CMD_DURATION_MS
}
let-env PROMPT_COMMAND = { starship_prompt }
let-env PROMPT_COMMAND_RIGHT = { }
let-env PROMPT_INDICATOR = ""
alias e = emacsclient -n
external_completer: $nothing # check 'carapace_completer' above to as example
filesize_metric: false
table_mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
use_ls_colors: true
rm_always_trash: false
ls: {
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
}
rm: {
always_trash: false # always act as if -t was given. Can be overridden with -p
}
cd: {
abbreviations: true # allows `cd s/o/f` to expand to `cd some/other/folder`
}
table: {
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
trim: {
methodology: wrapping # wrapping or truncating
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
}
}
history: {
max_size: 10000 # Session has to be reloaded for this to take effect
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
file_format: "plaintext" # "sqlite" or "plaintext"
}
completions: {
case_sensitive: false # set to true to enable case-sensitive completions
quick: true # set this to false to prevent auto-selecting completions when only one remains
partial: true # set this to false to prevent partial filling of the prompt
algorithm: "prefix" # prefix or fuzzy
external: {
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
completer: null # check 'carapace_completer' above as an example
}
}
filesize: {
metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
}
max_history_size: 10000 # Session has to be reloaded for this to take effect
sync_history_on_enter: true # Enable to share the history between multiple sessions, else you have to close the session to persist history to file
history_file_format: "plaintext" # "sqlite" or "plaintext"
cd_with_abbreviations: false # set to true to allow you to do things like cd s/o/f and nushell expand it to cd some/other/folder
case_sensitive_completions: false # set to true to enable case-sensitive completions
enable_external_completion: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
max_external_completion_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
# A strategy of managing table view in case of limited space.
table_trim: {
methodology: wrapping, # truncating
# A strategy which will be used by 'wrapping' methodology
wrapping_try_keep_words: true,
# A suffix which will be used with 'truncating' methodology
# truncating_suffix: "..."
}
show_clickable_links_in_ls: true # true or false to enable or disable clickable links in the ls listing. your terminal has to support links.
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
# source ~/.cache/starship/init.nu
let-env STARSHIP_SHELL = "nu"
let-env STARSHIP_SESSION_KEY = (random chars -l 16)
def starship_prompt [] {
# jobs are not supported
# status is not supported
^starship prompt --cmd-duration $env.CMD_DURATION_MS
}
let-env PROMPT_COMMAND = { starship_prompt }
let-env PROMPT_COMMAND_RIGHT = { }
let-env PROMPT_INDICATOR = ""