Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bc1434638f | |||
| 3cf19f0ca1 | |||
| 8989c7927c | |||
| 45fb878bd1 | |||
| c96e8fd36b | |||
| b768d53ab8 | |||
| 7dfa279413 | |||
| 9ea0e598a6 | |||
| 815561e0ef | |||
| 774763dd07 | |||
| 0d6cfd7781 | |||
| 467588a604 | |||
| d87753ff4e | |||
| b9e201b454 | |||
| dabafd59c2 | |||
| 1d274896fb | |||
| ba89086781 | |||
| 35c6b79229 | |||
| d7b760d93e | |||
| 80394ad98c | |||
| 73d5a0d548 | |||
| f8ad9e5ecb | |||
| baeb900c65 | |||
| ac651fe95d | |||
| 918103f48b | |||
| f5f32f5f45 | |||
| 7916b9dc3f | |||
| 81aa7cd3aa | |||
| 72a8bce86d | |||
| 2277906fdc |
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 Dominik Agreš
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,6 @@
|
||||
systemctl --user import-environment DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS
|
||||
dbus-update-activation-environment --systemd DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS
|
||||
|
||||
i3
|
||||
export GTK_THEME=Adwaita-dark
|
||||
export QT_QPA_PLATFORMTHEME=gtk2
|
||||
@@ -1,5 +1,5 @@
|
||||
[font]
|
||||
size = 8.0
|
||||
size = 10.0
|
||||
|
||||
[font.bold]
|
||||
family = "MesloLGL Nerd Font Mono"
|
||||
@@ -12,3 +12,6 @@ style = "Italic"
|
||||
[font.normal]
|
||||
family = "MesloLGL Nerd Font Mono"
|
||||
style = "Regular"
|
||||
|
||||
[window]
|
||||
opacity = 1.0
|
||||
|
||||
@@ -0,0 +1,371 @@
|
||||
## Base directory for Atuin data files (databases, keys, session, etc.)
|
||||
## All data file paths default to being relative to this directory.
|
||||
## linux/mac: ~/.local/share/atuin (or XDG_DATA_HOME/atuin)
|
||||
## windows: %USERPROFILE%/.local/share/atuin
|
||||
# data_dir = "~/.local/share/atuin"
|
||||
|
||||
## where to store your database, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/history.db
|
||||
## windows: %USERPROFILE%/.local/share/atuin/history.db
|
||||
# db_path = "~/.history.db"
|
||||
|
||||
## where to store your encryption key, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/key
|
||||
## windows: %USERPROFILE%/.local/share/atuin/key
|
||||
# key_path = "~/.key"
|
||||
|
||||
## where to store your auth session token, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/session
|
||||
## windows: %USERPROFILE%/.local/share/atuin/session
|
||||
# session_path = "~/.session"
|
||||
|
||||
## date format used, either "us" or "uk"
|
||||
# dialect = "us"
|
||||
|
||||
## default timezone to use when displaying time
|
||||
## either "l", "local" to use the system's current local timezone, or an offset
|
||||
## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
|
||||
## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
|
||||
# timezone = "local"
|
||||
|
||||
## enable or disable automatic sync
|
||||
# auto_sync = true
|
||||
|
||||
## enable or disable automatic update checks
|
||||
# update_check = true
|
||||
|
||||
## address of the sync server
|
||||
# sync_address = "https://api.atuin.sh"
|
||||
|
||||
## how often to sync history. note that this is only triggered when a command
|
||||
## is ran, so sync intervals may well be longer
|
||||
## set it to 0 to sync after every command
|
||||
# sync_frequency = "10m"
|
||||
|
||||
## which search mode to use
|
||||
## possible values: prefix, fulltext, fuzzy, skim
|
||||
# search_mode = "fuzzy"
|
||||
|
||||
## which filter mode to use by default
|
||||
## possible values: "global", "host", "session", "session-preload", "directory", "workspace"
|
||||
## consider using search.filters to customize the enablement and order of filter modes
|
||||
# filter_mode = "global"
|
||||
|
||||
## With workspace filtering enabled, Atuin will filter for commands executed
|
||||
## in any directory within a git repository tree (default: false).
|
||||
##
|
||||
## To use workspace mode by default when available, set this to true and
|
||||
## set filter_mode to "workspace" or leave it unspecified and
|
||||
## set search.filters to include "workspace" before other filter modes.
|
||||
# workspaces = false
|
||||
|
||||
## which filter mode to use when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "filter_mode"
|
||||
## leave unspecified to use same mode set in "filter_mode"
|
||||
# filter_mode_shell_up_key_binding = "global"
|
||||
|
||||
## which search mode to use when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "search_mode"
|
||||
## leave unspecified to use same mode set in "search_mode"
|
||||
# search_mode_shell_up_key_binding = "fuzzy"
|
||||
|
||||
## which style to use
|
||||
## possible values: auto, full, compact
|
||||
style = "compact"
|
||||
|
||||
## the maximum number of lines the interface should take up
|
||||
## set it to 0 to always go full screen
|
||||
inline_height = 15
|
||||
|
||||
## the maximum number of lines the interface should take up
|
||||
## when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "inline_height"
|
||||
# inline_height_shell_up_key_binding = 0
|
||||
|
||||
## Invert the UI - put the search bar at the top , Default to `false`
|
||||
invert = false
|
||||
|
||||
## enable or disable showing a preview of the selected command
|
||||
## useful when the command is longer than the terminal width and is cut off
|
||||
# show_preview = true
|
||||
|
||||
## what to do when the escape key is pressed when searching
|
||||
## possible values: return-original, return-query
|
||||
# exit_mode = "return-original"
|
||||
|
||||
## possible values: emacs, subl
|
||||
# word_jump_mode = "emacs"
|
||||
|
||||
## characters that count as a part of a word
|
||||
# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
|
||||
## number of context lines to show when scrolling by pages
|
||||
# scroll_context_lines = 1
|
||||
|
||||
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
|
||||
## alt-0 .. alt-9
|
||||
# ctrl_n_shortcuts = false
|
||||
|
||||
## Show numeric shortcuts (1..9) beside list items in the TUI
|
||||
## set to false to hide the moving numbers if you find them distracting
|
||||
# show_numeric_shortcuts = true
|
||||
|
||||
## default history list format - can also be specified with the --format arg
|
||||
# history_format = "{time}\t{command}\t{duration}"
|
||||
|
||||
## Defaults to true. If enabled, strip trailing spaces and tabs from commands
|
||||
## before saving them to history.
|
||||
## Escaped trailing spaces (for example `printf foo\\ `) are preserved.
|
||||
# strip_trailing_whitespace = true
|
||||
|
||||
## prevent commands matching any of these regexes from being written to history.
|
||||
## Note that these regular expressions are unanchored, i.e. if they don't start
|
||||
## with ^ or end with $, they'll match anywhere in the command.
|
||||
## For details on the supported regular expression syntax, see
|
||||
## https://docs.rs/regex/latest/regex/#syntax
|
||||
# history_filter = [
|
||||
# "^secret-cmd",
|
||||
# "^innocuous-cmd .*--secret=.+",
|
||||
# ]
|
||||
|
||||
## prevent commands run with cwd matching any of these regexes from being written
|
||||
## to history. Note that these regular expressions are unanchored, i.e. if they don't
|
||||
## start with ^ or end with $, they'll match anywhere in CWD.
|
||||
## For details on the supported regular expression syntax, see
|
||||
## https://docs.rs/regex/latest/regex/#syntax
|
||||
# cwd_filter = [
|
||||
# "^/very/secret/area",
|
||||
# ]
|
||||
|
||||
## Configure the maximum height of the preview to show.
|
||||
## Useful when you have long scripts in your history that you want to distinguish
|
||||
## by more than the first few lines.
|
||||
# max_preview_height = 4
|
||||
|
||||
## Configure whether or not to show the help row, which includes the current Atuin
|
||||
## version (and whether an update is available), a keymap hint, and the total
|
||||
## amount of commands in your history.
|
||||
# show_help = true
|
||||
|
||||
## Configure whether or not to show tabs for search and inspect
|
||||
# show_tabs = true
|
||||
|
||||
## Configure whether or not the tabs row may be auto-hidden, which includes the current Atuin
|
||||
## tab, such as Search or Inspector, and other tabs you may wish to see. This will
|
||||
## only be hidden if there are fewer than this count of lines available, and does not affect the use
|
||||
## of keyboard shortcuts to switch tab. 0 to never auto-hide, default is 8 (lines).
|
||||
## This is ignored except in `compact` mode.
|
||||
# auto_hide_height = 8
|
||||
|
||||
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
|
||||
## 1. AWS key id
|
||||
## 2. Github pat (old and new)
|
||||
## 3. Slack oauth tokens (bot, user)
|
||||
## 4. Slack webhooks
|
||||
## 5. Stripe live/test keys
|
||||
# secrets_filter = true
|
||||
|
||||
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command,
|
||||
## whereas tab will put the command in the prompt for editing.
|
||||
## If set to false, both enter and tab will place the command in the prompt for editing.
|
||||
## This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
|
||||
enter_accept = true
|
||||
|
||||
## Defaults to false. If enabled, when triggered after &&, || or |, Atuin will complete commands to chain rather than replace the current line.
|
||||
command_chaining = true
|
||||
|
||||
## Defaults to "emacs". This specifies the keymap on the startup of `atuin
|
||||
## search`. If this is set to "auto", the startup keymap mode in the Atuin
|
||||
## search is automatically selected based on the shell's keymap where the
|
||||
## keybinding is defined. If this is set to "emacs", "vim-insert", or
|
||||
## "vim-normal", the startup keymap mode in the Atuin search is forced to be
|
||||
## the specified one.
|
||||
# keymap_mode = "auto"
|
||||
|
||||
## Cursor style in each keymap mode. If specified, the cursor style is changed
|
||||
## in entering the cursor shape. Available values are "default" and
|
||||
## "{blink,steady}-{block,underline,bar}".
|
||||
# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
|
||||
|
||||
# network_connect_timeout = 5
|
||||
# network_timeout = 5
|
||||
|
||||
## Timeout (in seconds) for acquiring a local database connection (sqlite)
|
||||
# local_timeout = 5
|
||||
|
||||
## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
|
||||
## Alternatively, set env NO_MOTION=true
|
||||
# prefers_reduced_motion = false
|
||||
|
||||
[stats]
|
||||
## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
|
||||
# common_subcommands = [
|
||||
# "apt",
|
||||
# "cargo",
|
||||
# "composer",
|
||||
# "dnf",
|
||||
# "docker",
|
||||
# "dotnet",
|
||||
# "git",
|
||||
# "go",
|
||||
# "ip",
|
||||
# "jj",
|
||||
# "kubectl",
|
||||
# "nix",
|
||||
# "nmcli",
|
||||
# "npm",
|
||||
# "pecl",
|
||||
# "pnpm",
|
||||
# "podman",
|
||||
# "port",
|
||||
# "systemctl",
|
||||
# "tmux",
|
||||
# "yarn",
|
||||
# ]
|
||||
|
||||
## Set commands that should be totally stripped and ignored from stats
|
||||
# common_prefix = ["sudo"]
|
||||
|
||||
## Set commands that will be completely ignored from stats
|
||||
# ignored_commands = [
|
||||
# "cd",
|
||||
# "ls",
|
||||
# "vi"
|
||||
# ]
|
||||
|
||||
[keys]
|
||||
# Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry.
|
||||
# scroll_exits = true
|
||||
|
||||
# Defaults to true. The left arrow key will exit the TUI when scrolling before the first character
|
||||
# exit_past_line_start = true
|
||||
|
||||
# Defaults to true. The right arrow key performs the same functionality as Tab and copies the selected line to the command line to be modified.
|
||||
# accept_past_line_end = true
|
||||
|
||||
# Defaults to false. The left arrow key performs the same functionality as Tab and copies the selected line to the command line to be modified.
|
||||
# accept_past_line_start = false
|
||||
|
||||
# Defaults to false. The backspace key performs the same functionality as Tab and copies the selected line to the command line to be modified when at the start of the line.
|
||||
# accept_with_backspace = false
|
||||
|
||||
[sync]
|
||||
# Enable sync v2 by default
|
||||
# This ensures that sync v2 is enabled for new installs only
|
||||
# In a later release it will become the default across the board
|
||||
records = true
|
||||
|
||||
[preview]
|
||||
## which preview strategy to use to calculate the preview height (respects max_preview_height).
|
||||
## possible values: auto, static
|
||||
## auto: length of the selected command.
|
||||
## static: length of the longest command stored in the history.
|
||||
## fixed: use max_preview_height as fixed height.
|
||||
# strategy = "auto"
|
||||
|
||||
[daemon]
|
||||
## Enables using the daemon to sync.
|
||||
# enabled = false
|
||||
|
||||
## Automatically start and manage the daemon when needed.
|
||||
## Not compatible with `systemd_socket = true`.
|
||||
# autostart = false
|
||||
|
||||
## How often the daemon should sync in seconds
|
||||
# sync_frequency = 300
|
||||
|
||||
## The path to the unix socket used by the daemon (on unix systems)
|
||||
## linux/mac: ~/.local/share/atuin/atuin.sock
|
||||
## windows: Not Supported
|
||||
# socket_path = "~/.local/share/atuin/atuin.sock"
|
||||
|
||||
## The daemon pidfile used for lifecycle management.
|
||||
## Defaults to the Atuin data directory.
|
||||
# pidfile_path = "~/.local/share/atuin/atuin-daemon.pid"
|
||||
|
||||
## Use systemd socket activation rather than opening the given path (the path must still be correct for the client)
|
||||
## linux: false
|
||||
## mac/windows: Not Supported
|
||||
# systemd_socket = false
|
||||
|
||||
## The port that should be used for TCP on non unix systems
|
||||
# tcp_port = 8889
|
||||
|
||||
# [theme]
|
||||
## Color theme to use for rendering in the terminal.
|
||||
## There are some built-in themes, including the base theme ("default"),
|
||||
## "autumn" and "marine". You can add your own themes to the "./themes" subdirectory of your
|
||||
## Atuin config (or ATUIN_THEME_DIR, if provided) as TOML files whose keys should be one or
|
||||
## more of AlertInfo, AlertWarn, AlertError, Annotation, Base, Guidance, Important, and
|
||||
## the string values as lowercase entries from this list:
|
||||
## https://ogeon.github.io/docs/palette/master/palette/named/index.html
|
||||
## If you provide a custom theme file, it should be called "NAME.toml" and the theme below
|
||||
## should be the stem, i.e. `theme = "NAME"` for your chosen NAME.
|
||||
# name = "autumn"
|
||||
|
||||
## Whether the theme manager should output normal or extra information to help fix themes.
|
||||
## Boolean, true or false. If unset, left up to the theme manager.
|
||||
# debug = true
|
||||
|
||||
[search]
|
||||
## The list of enabled filter modes, in order of priority.
|
||||
## The "workspace" mode is skipped when not in a workspace or workspaces = false.
|
||||
## Default filter mode can be overridden with the filter_mode setting.
|
||||
# filters = [ "global", "host", "session", "session-preload", "workspace", "directory" ]
|
||||
|
||||
[tmux]
|
||||
## Enable using atuin with tmux popup (requires tmux >= 3.2)
|
||||
## When enabled and running inside tmux, Atuin will use a popup window for interactive search.
|
||||
## Set to false to disable the popup.
|
||||
## This can also be controlled with the ATUIN_TMUX_POPUP environment variable.
|
||||
## Note: The tmux popup is currently supported in zsh, bash, and fish shells. This currently doesn't work with iTerm native tmux integration.
|
||||
# enabled = false
|
||||
|
||||
## Width of the tmux popup window
|
||||
## Can be a percentage, or integer (e.g. "100" means 100 characters wide)
|
||||
# width = "80%"
|
||||
|
||||
## Height of the tmux popup window
|
||||
## Can be a percentage, or integer (e.g. "100" means 100 lines tall)
|
||||
# height = "60%"
|
||||
|
||||
[ui]
|
||||
## Columns to display in the interactive search, from left to right.
|
||||
## The selection indicator (" > ") is always shown first implicitly.
|
||||
##
|
||||
## Each column can be specified as a simple string (uses default width)
|
||||
## or as an object with type, width, and expand:
|
||||
## { type = "directory", width = 30, expand = true }
|
||||
##
|
||||
## Available column types (with default widths):
|
||||
## duration (5) - Command execution duration (e.g., "123ms")
|
||||
## time (8) - Relative time since execution (e.g., "59m ago")
|
||||
## datetime (16) - Absolute timestamp (e.g., "2025-01-22 14:35")
|
||||
## directory (20) - Working directory (truncated if too long)
|
||||
## host (15) - Hostname where command was run
|
||||
## user (10) - Username
|
||||
## exit (3) - Exit code (colored by success/failure)
|
||||
## command (*) - The command itself (expands by default)
|
||||
##
|
||||
## The "expand" option (default: true for command, false for others) makes a
|
||||
## column fill remaining space. Only one column should have expand = true.
|
||||
##
|
||||
## Default:
|
||||
# columns = ["duration", "time", "command"]
|
||||
##
|
||||
## Examples:
|
||||
##
|
||||
## Minimal - more space for commands:
|
||||
# columns = ["duration", "command"]
|
||||
##
|
||||
## With wider directory column:
|
||||
# columns = ["duration", { type = "directory", width = 30 }, "command"]
|
||||
##
|
||||
## Show host for multi-machine sync users:
|
||||
# columns = ["duration", "time", "host", "command"]
|
||||
##
|
||||
## Show exit codes prominently:
|
||||
# columns = ["exit", "duration", "command"]
|
||||
##
|
||||
## Make directory expand instead of command:
|
||||
# columns = ["duration", "time", { type = "directory", expand = true }, { type = "command", expand = false }]
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/claude-code-settings.json",
|
||||
"theme": "dark",
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(git *)",
|
||||
"Bash(make *)",
|
||||
"Bash(go *)",
|
||||
"Bash(python *)",
|
||||
"Bash(cargo *)",
|
||||
"Read(~/.zshrc)",
|
||||
"Read(~/.config/**)"
|
||||
],
|
||||
"deny": [
|
||||
"Read(./.env)",
|
||||
"Read(./.env.*)",
|
||||
"Read(./secrets/**)",
|
||||
"Bash(curl * | bash *)"
|
||||
]
|
||||
},
|
||||
"hooks": {
|
||||
"Stop": [
|
||||
{
|
||||
"hooks": [{ "type": "command", "command": "notify-send 'Claude Code' 'Task finished'" }]
|
||||
}
|
||||
]
|
||||
},
|
||||
"attribution": {
|
||||
"commits": false,
|
||||
"pullRequests": false
|
||||
},
|
||||
"spinnerTipsOverride": {
|
||||
"excludeDefault": false,
|
||||
"tips": [
|
||||
"Your custom tip here",
|
||||
"Another reminder"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,271 @@
|
||||
[global]
|
||||
### Display ###
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
follow = none
|
||||
|
||||
### Geometry ###
|
||||
width = 300
|
||||
height = (0, 300)
|
||||
origin = top-right
|
||||
offset = (10, 50)
|
||||
scale = 0
|
||||
notification_limit = 5
|
||||
|
||||
### Progress bar ###
|
||||
progress_bar = true
|
||||
progress_bar_height = 10
|
||||
progress_bar_frame_width = 1
|
||||
progress_bar_min_width = 150
|
||||
progress_bar_max_width = 300
|
||||
progress_bar_corner_radius = 0
|
||||
progress_bar_corners = all
|
||||
icon_corner_radius = 0
|
||||
icon_corners = all
|
||||
|
||||
indicate_hidden = yes
|
||||
|
||||
transparency = 20
|
||||
separator_height = 0
|
||||
|
||||
padding = 8
|
||||
horizontal_padding = 8
|
||||
text_icon_padding = 0
|
||||
frame_width = 3
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#aaaaaa"
|
||||
gap_size = 0
|
||||
|
||||
separator_color = frame
|
||||
|
||||
sort = yes
|
||||
idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Monospace 8
|
||||
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
format = "<b>%s</b>\n%a %b"
|
||||
|
||||
alignment = left
|
||||
vertical_alignment = center
|
||||
show_age_threshold = 60
|
||||
|
||||
ellipsize = middle
|
||||
|
||||
ignore_newline = no
|
||||
|
||||
stack_duplicates = true
|
||||
|
||||
hide_duplicate_count = false
|
||||
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
enable_recursive_icon_lookup = true
|
||||
icon_theme = Adwaita
|
||||
icon_position = off
|
||||
min_icon_size = 32
|
||||
max_icon_size = 128
|
||||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
sticky_history = yes
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
browser = /usr/bin/xdg-open
|
||||
always_run_script = true
|
||||
title = Dunst
|
||||
class = Dunst
|
||||
corner_radius = 5
|
||||
corners = all
|
||||
ignore_dbusclose = false
|
||||
|
||||
mouse_left_click = do_action, close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
|
||||
[experimental]
|
||||
per_monitor_dpi = false
|
||||
|
||||
[urgency_low]
|
||||
background = "#222222"
|
||||
foreground = "#888888"
|
||||
timeout = 20
|
||||
default_icon = dialog-information
|
||||
|
||||
[urgency_normal]
|
||||
background = "#285577"
|
||||
foreground = "#ffffff"
|
||||
timeout = 30
|
||||
override_pause_level = 30
|
||||
default_icon = dialog-information
|
||||
|
||||
[urgency_critical]
|
||||
background = "#900000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 0
|
||||
override_pause_level = 60
|
||||
default_icon = dialog-warning
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# set_category
|
||||
# timeout
|
||||
# urgency
|
||||
# icon_position
|
||||
# skip_display
|
||||
# history_ignore
|
||||
# action_name
|
||||
# word_wrap
|
||||
# ellipsize
|
||||
# alignment
|
||||
# hide_text
|
||||
# override_pause_level
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
|
||||
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
|
||||
# override_pause_level = X
|
||||
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# skip_display = true
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
||||
@@ -1,22 +1,37 @@
|
||||
# i3blocks configuration file
|
||||
#
|
||||
# The i3blocks man page describes the usage of the binary,
|
||||
# and its website describes the configuration:
|
||||
#
|
||||
# https://vivien.github.io/i3blocks
|
||||
|
||||
|
||||
# Global properties
|
||||
separator=true
|
||||
separator_block_width=20
|
||||
|
||||
[greetings]
|
||||
color=#f5af19
|
||||
command=echo "$USER"
|
||||
color=#00b894
|
||||
command=echo "[$USER@$HOSTNAME ~]"
|
||||
interval=once
|
||||
|
||||
[uptime]
|
||||
command=awk '{t=int($1); d=t/86400; h=(t%86400)/3600; m=(t%3600)/60; if(d>0) printf "%dd %02d:%02dh\n", d,h,m; else printf "%02d:%02dh\n", h,m}' /proc/uptime
|
||||
interval=60
|
||||
label=UPT:
|
||||
|
||||
[homelab]
|
||||
command=/home/agres/.config/i3/scripts/lab.sh
|
||||
interval=60
|
||||
label=LAB:
|
||||
|
||||
[homelab]
|
||||
command=/home/agres/.config/i3/scripts/vpn.sh
|
||||
interval=10
|
||||
label=VPN:
|
||||
|
||||
[batteries_mouse]
|
||||
command=/home/agres/.config/i3/scripts/mouse_battery.sh
|
||||
interval=60
|
||||
|
||||
[batteries_keyboard]
|
||||
command=/home/agres/.config/i3/scripts/keyboard_battery.sh
|
||||
interval=60
|
||||
|
||||
[cpu]
|
||||
command=mpstat 1 1 | awk '/Average/ {print 100 - $NF"%"}'
|
||||
command=/home/agres/.config/i3/scripts/cpu_usage.sh
|
||||
interval=5
|
||||
label=CPU:
|
||||
|
||||
@@ -26,25 +41,10 @@ interval=5
|
||||
label=GPU:
|
||||
|
||||
[mem]
|
||||
command=free -h | awk '/^Mem/ {print $3 "/" $2}'
|
||||
command=/home/agres/.config/i3/scripts/mem_usage.sh
|
||||
interval=10
|
||||
label=MEM:
|
||||
|
||||
#[down]
|
||||
#command=vnstat -tr 2 | tail -n 3 | awk '/rx/ {print $2}'
|
||||
#interval=5
|
||||
#label=DOWN:
|
||||
|
||||
#[up]
|
||||
#command=vnstat -tr 2 | tail -n 3 | awk '/tx/ {print $2}'
|
||||
#interval=5
|
||||
#label=UP:
|
||||
|
||||
[time]
|
||||
command=date '+%d.%m %H:%M:%S'
|
||||
command=date '+%d.%m %H:%M'
|
||||
interval=1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
origin_url=$(git remote get-url origin 2>/dev/null)
|
||||
|
||||
if [[ "$origin_url" == *"github.com"* ]]; then
|
||||
|
||||
user_repo=$(echo "$origin_url" | sed -E 's#.*github.com[:/](.*)\.git#\1#')
|
||||
gitea_url="git@192.168.0.212:${user_repo}.git"
|
||||
|
||||
if git remote -v | grep -q "$gitea_url"; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
git remote set-url --add --push origin "$gitea_url"
|
||||
git remote set-url --add --push origin "$origin_url"
|
||||
fi
|
||||
@@ -1,3 +0,0 @@
|
||||
i3
|
||||
export GTK_THEME=Adwaita-dark
|
||||
export QT_QPA_PLATFORMTHEME=gtk2
|
||||
@@ -1,79 +0,0 @@
|
||||
# Oh my zsh
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
ZSH_THEME="eastwood"
|
||||
HIST_STAMPS="dd.mm.yyyy"
|
||||
plugins=(git sudo)
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# -- Linux Specific --
|
||||
|
||||
if [[ -z $DISPLAY ]] && [[ $(tty) == /dev/tty1 ]]; then
|
||||
startx
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# -- Local Setup ---
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
if [[ -n $SSH_CONNECTION ]]; then
|
||||
export EDITOR='nvim'
|
||||
else
|
||||
export EDITOR='nvim'
|
||||
fi
|
||||
|
||||
|
||||
# -- Env Paths ---
|
||||
|
||||
# go
|
||||
#export PATH=/usr/local/go/bin:$PATH
|
||||
|
||||
# pyenv
|
||||
#export PYENV_ROOT="$HOME/.pyenv"
|
||||
#export PATH="$PYENV_ROOT/bin:$PATH"
|
||||
#eval "$(pyenv init --path)"
|
||||
#eval "$(pyenv init -)"
|
||||
|
||||
# pipx
|
||||
#export PATH="$PATH:/Users/agres/.local/bin"
|
||||
#export PATH="$HOME/.local/bin:$PATH"
|
||||
# pipx Linux
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
|
||||
# bun
|
||||
#[ -s "/Users/agres/.bun/_bun" ] && source "/Users/agres/.bun/_bun"
|
||||
#export BUN_INSTALL="$HOME/.bun"
|
||||
#export PATH="$BUN_INSTALL/bin:$PATH"
|
||||
|
||||
# -- Customization --
|
||||
|
||||
# Alais: ls to run tree (without any flags)
|
||||
unalias ls 2>/dev/null
|
||||
ls() {
|
||||
if [[ $# -eq 0 ]]; then
|
||||
tree -L 1
|
||||
else
|
||||
command ls -G "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Alias: list all modified and new files in current directory
|
||||
alias lsgit='git status --porcelain | cut -c 4- | xargs ls -l'
|
||||
|
||||
# Alias: wifi to print qr code in terminal from file (device adjustable)
|
||||
alias wifi='cat /Users/agres/Projects/python_lang/wifi_qr/wifi_password.txt | qr --asci'
|
||||
|
||||
# Alias: connect and disconnect bluetooth headphones
|
||||
#alias airpods-connect='bluetoothctl --controller 6C:2F:80:E0:88:8B connect 80:95:3A:DC:8E:41'
|
||||
alias airpods-connect='echo -e "select 12:34:56:78:9A:BC\nconnect 80:95:3A:DC:8E:41" | bluetoothctl >> /dev/null'
|
||||
#alias airpods-disconnect='bluetoothctl --controller 6C:2F:80:E0:88:8B disconnect 80:95:3A:DC:8E:41'
|
||||
alias airpods-disconnect='echo -e "select 12:34:56:78:9A:BC\ndisconnect 80:95:3A:DC:8E:41" | bluetoothctl >> /dev/null'
|
||||
alias airpods='echo -e "select 12:34:56:78:9A:BC\ninfo 80:95:3A:DC:8E:41" | bluetoothctl | grep "Connected: "'
|
||||
|
||||
# Alias: avoid nano
|
||||
alias nano=nvim
|
||||
|
||||
# Alias quick mount network smdb drive
|
||||
alias md0='sudo mount --mkdir -t cifs //192.168.0.200/MD0 /mnt/md0 -o username=agres'
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
set $mod Mod4
|
||||
|
||||
#font pango:monospace 8
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
#font pango:JetBrains Mono 8
|
||||
# Set i3 font
|
||||
font pango:MesloLGL Nerd Font Mono 8
|
||||
|
||||
|
||||
# Start basic functionality apps
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
#exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id xautolock -time 30 -locker "/home/agres/.config/i3/scripts/lock.sh"
|
||||
exec --no-startup-id xautolock -time 120 -locker "/home/agres/.config/i3/scripts/lock.sh"
|
||||
|
||||
# Keyboard quick buttons
|
||||
set $refresh_i3status killall -SIGUSR1 i3status
|
||||
@@ -18,9 +15,7 @@ bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
bindsym --release $mod+Shift+S exec --no-startup-id sh -c '/home/agres/.config/i3/scripts/focused-monitor.sh | xclip -selection clipboard -t image/png'
|
||||
bindsym --release $mod+Shift+Ctrl+S exec --no-startup-id sh -c '/home/agres/.config/i3/scripts/focused-monitor.sh ~/pictures/$(date +%Y-%m-%d_%H-%M-%S).png'
|
||||
|
||||
|
||||
bindsym --release $mod+Shift+Ctrl+S exec --no-startup-id sh -c '/home/agres/.config/i3/scripts/focused-monitor.sh ~/other/pictures/$(date +%Y-%m-%d_%H-%M-%S).png'
|
||||
|
||||
floating_modifier $mod
|
||||
tiling_drag modifier titlebar
|
||||
@@ -30,12 +25,14 @@ bindsym $mod+Return exec alacritty
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
bindsym $mod+d exec --no-startup-id rofi -show run -theme solarized
|
||||
bindsym $mod+s exec --no-startup-id ~/.local/bin/docpic-rofi
|
||||
|
||||
|
||||
# change focus
|
||||
bindsym $mod+j focus left
|
||||
bindsym $mod+k focus down
|
||||
bindsym $mod+l focus up
|
||||
bindsym $mod+semicolon focus right
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
bindsym $mod+h focus left
|
||||
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
@@ -43,10 +40,10 @@ bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+j move left
|
||||
bindsym $mod+Shift+k move down
|
||||
bindsym $mod+Shift+l move up
|
||||
bindsym $mod+Shift+semicolon move right
|
||||
bindsym $mod+Shift+j move down
|
||||
bindsym $mod+Shift+k move up
|
||||
bindsym $mod+Shift+l move right
|
||||
bindsym $mod+Shift+h move left
|
||||
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
@@ -54,8 +51,7 @@ bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+h split h
|
||||
|
||||
bindsym $mod+b split h
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
@@ -63,8 +59,8 @@ bindsym $mod+v split v
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
#bindsym $mod+s layout stacking
|
||||
#bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
@@ -74,20 +70,22 @@ bindsym $mod+Shift+space floating toggle
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
#bindsym $mod+a focus parent
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
|
||||
#Stop focus from wrapping around edges (stay on last window in that direction)
|
||||
focus_wrapping no
|
||||
|
||||
# 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 $ws1 "1:Code"
|
||||
set $ws2 "2:Term"
|
||||
set $ws3 "3:Term"
|
||||
set $ws4 "4:VM"
|
||||
set $ws5 "5:Web"
|
||||
set $ws6 "6:Mail"
|
||||
set $ws7 "7:Games"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
@@ -147,16 +145,56 @@ mode "resize" {
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
gaps inner 5
|
||||
#gaps outer 2
|
||||
gaps inner 3
|
||||
gaps outer 0
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
# Separate bars for dual screen setup
|
||||
bar {
|
||||
status_command i3blocks
|
||||
position top
|
||||
output DisplayPort-0
|
||||
status_command i3blocks
|
||||
position top
|
||||
tray_output none
|
||||
workspace_buttons yes
|
||||
colors {
|
||||
background #000000
|
||||
statusline #ffffff
|
||||
separator #333333
|
||||
|
||||
focused_workspace #00675a #00675a #ffffff
|
||||
active_workspace #1c1c1c #1c1c1c #cccccc
|
||||
inactive_workspace #000000 #000000 #777777
|
||||
urgent_workspace #870000 #870000 #ffffff
|
||||
}
|
||||
}
|
||||
|
||||
bar {
|
||||
output HDMI-A-0
|
||||
status_command i3blocks
|
||||
position top
|
||||
tray_output none
|
||||
workspace_buttons yes
|
||||
colors {
|
||||
background #000000
|
||||
statusline #ffffff
|
||||
separator #333333
|
||||
|
||||
focused_workspace #00675a #00675a #ffffff
|
||||
active_workspace #1c1c1c #1c1c1c #cccccc
|
||||
inactive_workspace #000000 #000000 #777777
|
||||
urgent_workspace #870000 #870000 #ffffff
|
||||
}
|
||||
}
|
||||
|
||||
# Hard defined workspace placement
|
||||
workspace $ws1 output DisplayPort-0
|
||||
workspace $ws2 output DisplayPort-0
|
||||
workspace $ws3 output DisplayPort-0
|
||||
workspace $ws4 output DisplayPort-0
|
||||
workspace $ws5 output HDMI-A-0
|
||||
workspace $ws6 output HDMI-A-0
|
||||
workspace $ws7 output HDMI-A-0
|
||||
#workspace $ws8 output HDMI-A-1
|
||||
|
||||
# Load Xresources file
|
||||
exec --no-startup-id xrdb -merge ~/.Xresources
|
||||
# Keyboard to German
|
||||
@@ -170,10 +208,32 @@ exec --no-startup-id feh --bg-scale /home/agres/.config/i3/wallpaper/wallpaper.j
|
||||
# Disable screen from going black after 10 mins to 3 hours
|
||||
exec --no-startup-id xset s 7200 7200
|
||||
exec --no-startup-id xset dpms 7200 7200 7200
|
||||
# Slight Transparency
|
||||
exec --no-startup-id picom
|
||||
# Start notification tool
|
||||
exec --no-startup-id dunst
|
||||
# Start librepods
|
||||
#exec --no-startup-id /home/agres/other/build/librepods-main/linux/build/librepods --hide
|
||||
|
||||
default_border pixel 4
|
||||
default_floating_border normal 0
|
||||
|
||||
# Window overlay theme
|
||||
client.focused #00b5af #00b5af #fdf6e3 #073642
|
||||
client.focused_inactive #073642 #073642 #fdf6e3 #073642
|
||||
client.unfocused #073642 #073642 #fdf6e3 #073642
|
||||
|
||||
set $g0 #111111
|
||||
set $g1 #1A1A1A
|
||||
set $g2 #2A2A2A
|
||||
set $g3 #3A3A3A
|
||||
set $g4 #4A4A4A
|
||||
set $g5 #BFBFBF
|
||||
set $g6 #E6E6E6
|
||||
set $accent #808080
|
||||
set $ws_accent #00675a
|
||||
|
||||
# --- Window decoration colors ---
|
||||
# Format: client.<state> <border> <background> <text> <indicator> <child_border>
|
||||
client.focused $ws_accent $ws_accent $g6 $accent $ws_accent
|
||||
client.focused_inactive $g3 $g3 $g5 $g3 $g3
|
||||
client.unfocused $g3 $g3 $g5 $g3 $g3
|
||||
client.urgent #5F1F1F #5F1F1F $g6 #B35C5C #5F1F1F
|
||||
client.placeholder $g0 $g0 $g5 $g3 $g0
|
||||
client.background $g0
|
||||
|
||||
@@ -0,0 +1,223 @@
|
||||
set $mod Mod4
|
||||
|
||||
# Set i3 font
|
||||
font pango:MesloLGL Nerd Font Mono 8
|
||||
|
||||
# Start basic functionality apps
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id xautolock -time 30 -locker "/home/agres/.config/i3/scripts/lock.sh"
|
||||
|
||||
# Keyboard quick buttons
|
||||
set $refresh_i3status killall -SIGUSR1 i3status
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
bindsym --release $mod+Shift+S exec --no-startup-id sh -c '/home/agres/.config/i3/scripts/focused-monitor.sh | xclip -selection clipboard -t image/png'
|
||||
bindsym --release $mod+Shift+Ctrl+S exec --no-startup-id sh -c '/home/agres/.config/i3/scripts/focused-monitor.sh ~/other/pictures/$(date +%Y-%m-%d_%H-%M-%S).png'
|
||||
|
||||
floating_modifier $mod
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
bindsym $mod+Return exec alacritty
|
||||
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
bindsym $mod+d exec --no-startup-id rofi -show run -theme solarized
|
||||
|
||||
# change focus
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
bindsym $mod+h focus left
|
||||
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+j move down
|
||||
bindsym $mod+Shift+k move up
|
||||
bindsym $mod+Shift+l move right
|
||||
bindsym $mod+Shift+h move left
|
||||
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+b split h
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
#bindsym $mod+s layout stacking
|
||||
#bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e 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:Code"
|
||||
set $ws2 "2:Term"
|
||||
set $ws3 "3:Term"
|
||||
set $ws4 "4:VM"
|
||||
set $ws5 "5:Web"
|
||||
set $ws6 "6:Mail"
|
||||
set $ws7 "7:Games"
|
||||
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+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e 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'"
|
||||
# Locking the screen with i3lock
|
||||
bindsym $mod+q exec --no-startup-id "/home/agres/.config/i3/scripts/lock.sh"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym k resize grow height 10 px or 10 ppt
|
||||
bindsym l resize shrink height 10 px or 10 ppt
|
||||
bindsym semicolon 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+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
gaps inner 3
|
||||
gaps outer 0
|
||||
|
||||
# Separate bars for dual screen setup
|
||||
bar {
|
||||
output DisplayPort-0
|
||||
status_command i3blocks
|
||||
position top
|
||||
tray_output none
|
||||
workspace_buttons yes
|
||||
colors {
|
||||
background #000000
|
||||
statusline #ffffff
|
||||
separator #333333
|
||||
|
||||
focused_workspace #00675a #00675a #ffffff
|
||||
active_workspace #1c1c1c #1c1c1c #cccccc
|
||||
inactive_workspace #000000 #000000 #777777
|
||||
urgent_workspace #870000 #870000 #ffffff
|
||||
}
|
||||
}
|
||||
|
||||
bar {
|
||||
output HDMI-A-0
|
||||
status_command i3blocks
|
||||
position top
|
||||
tray_output none
|
||||
workspace_buttons yes
|
||||
colors {
|
||||
background #000000
|
||||
statusline #ffffff
|
||||
separator #333333
|
||||
|
||||
focused_workspace #00675a #00675a #ffffff
|
||||
active_workspace #1c1c1c #1c1c1c #cccccc
|
||||
inactive_workspace #000000 #000000 #777777
|
||||
urgent_workspace #870000 #870000 #ffffff
|
||||
}
|
||||
}
|
||||
|
||||
# Hard defined workspace placement
|
||||
workspace $ws1 output DisplayPort-0
|
||||
workspace $ws2 output DisplayPort-0
|
||||
workspace $ws3 output DisplayPort-0
|
||||
workspace $ws4 output DisplayPort-0
|
||||
workspace $ws5 output HDMI-A-0
|
||||
workspace $ws6 output HDMI-A-0
|
||||
workspace $ws7 output HDMI-A-0
|
||||
#workspace $ws8 output HDMI-A-1
|
||||
|
||||
# Load Xresources file
|
||||
exec --no-startup-id xrdb -merge ~/.Xresources
|
||||
# Keyboard to German
|
||||
exec --no-startup-id setxkbmap -layout de
|
||||
# Set the screens correctly
|
||||
exec --no-startup-id xrandr --output HDMI-A-0 --primary --auto --output DisplayPort-0 --auto --left-of HDMI-A-0
|
||||
# Scale 4K screen bigger
|
||||
exec --no-startup-id xrandr --output DisplayPort-0 --scale 0.8x0.8
|
||||
# Set wallpaper
|
||||
exec --no-startup-id feh --bg-scale /home/agres/.config/i3/wallpaper/wallpaper.jpg
|
||||
# Disable screen from going black after 10 mins to 3 hours
|
||||
exec --no-startup-id xset s 7200 7200
|
||||
exec --no-startup-id xset dpms 7200 7200 7200
|
||||
# Slight Transparency
|
||||
exec --no-startup-id picom
|
||||
# Start notification tool
|
||||
exec --no-startup-id dunst
|
||||
|
||||
# Application Autostarts
|
||||
exec --no-startup-id i3-msg "workspace $ws2; exec alacritty"
|
||||
exec --no-startup-id i3-msg "workspace $ws1; exec zeditor"
|
||||
exec --no-startup-id i3-msg "workspace $ws5; exec zen-browser"
|
||||
exec --no-startup-id i3-msg "workspace $ws6; exec thunderbird"
|
||||
|
||||
# Window overlay theme
|
||||
client.focused #00b894 #00675a #ffffff #00b894 #00675a
|
||||
client.focused_inactive #303030 #1c1c1c #cccccc #303030 #1c1c1c
|
||||
client.unfocused #1c1c1c #000000 #999999 #1c1c1c #000000
|
||||
client.urgent #ff5f5f #870000 #ffffff #ff5f5f #870000
|
||||
client.placeholder #000000 #000000 #ffffff #000000 #000000
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
usage=$(mpstat 1 1 | awk '/Average/ {print 100 - $NF}')
|
||||
|
||||
temp=$(sensors | awk '/^Tctl:/ {gsub(/[+°]C/, "", $2); print $2; exit}')
|
||||
temp=${temp#+}
|
||||
|
||||
text="${usage}% ${temp}°C"
|
||||
|
||||
echo "$text"
|
||||
echo "$text"
|
||||
|
||||
if [ "$(printf "%.0f" "$usage")" -ge 90 ]; then
|
||||
echo "#ffcc66"
|
||||
else
|
||||
echo "#ffffff"
|
||||
fi
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Which output contains the focused node?
|
||||
output=$(i3-msg -t get_tree | jq -r '.. | select(.focused? == true) | .output')
|
||||
|
||||
# Get its geometry from i3 directly
|
||||
geometry=$(i3-msg -t get_outputs \
|
||||
| jq -r --arg out "$output" '.[] | select(.name==$out and .active)
|
||||
| .rect | "\(.width)x\(.height)+\(.x)+\(.y)"')
|
||||
|
||||
# Shoot that output
|
||||
exec maim -u -g "$geometry" "$@"
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
# ~/.config/i3/scripts/gpu_usage.sh
|
||||
|
||||
if command -v rocm-smi &>/dev/null; then
|
||||
output=$(rocm-smi --showtemp --showuse)
|
||||
temp=$(echo "$output" | awk -F': ' '/Sensor edge/ {print $3; exit}')
|
||||
usage=$(echo "$output" | awk -F': ' '/GPU use/ {print $3; exit}')
|
||||
|
||||
echo "${usage}% ${temp}°C"
|
||||
echo "${usage}% ${temp}°C"
|
||||
|
||||
if [ "$usage" -ge 90 ]; then
|
||||
echo "#ffcc66"
|
||||
else
|
||||
echo "#ffffff"
|
||||
fi
|
||||
else
|
||||
echo "N/A"
|
||||
echo "N/A"
|
||||
echo "#ffffff"
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
KBD_PATH="/org/freedesktop/UPower/devices/keyboard_dev_D7_E8_29_FA_0F_D0"
|
||||
|
||||
if upower -i "$KBD_PATH" 2>/dev/null | grep -q "present:.*yes"; then
|
||||
perc=$(upower -i "$KBD_PATH" | awk '/percentage:/ {print $2}')
|
||||
|
||||
echo "KBD:$perc"
|
||||
echo "KBD:$perc"
|
||||
|
||||
raw=${perc%\%}
|
||||
|
||||
if [ "$raw" -ge 15 ]; then
|
||||
echo "#ffffff"
|
||||
else
|
||||
echo "#ffcc66"
|
||||
fi
|
||||
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
HOST=192.168.0.200
|
||||
|
||||
if ping -c1 -W1 "$HOST" >/dev/null 2>&1; then
|
||||
echo "UP"
|
||||
echo "UP"
|
||||
echo "#00b894"
|
||||
else
|
||||
echo "DOWN"
|
||||
echo "DOWN"
|
||||
echo "#ff0000"
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
if pgrep -x i3lock >/dev/null; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
img=/tmp/lock.png
|
||||
|
||||
scrot --overwrite "$img"
|
||||
|
||||
magick "$img" -blur 0x8 "$img"
|
||||
|
||||
i3lock \
|
||||
-i "$img" \
|
||||
--inside-color=373445ff \
|
||||
--ring-color=ffffffff \
|
||||
--line-color=00000000 \
|
||||
--keyhl-color=d23c3dff \
|
||||
--bshl-color=d23c3dff \
|
||||
--separator-color=00000000 \
|
||||
--insidever-color=ffffff1c \
|
||||
--insidewrong-color=d23c3d1c \
|
||||
--ringver-color=ffffffff \
|
||||
--ringwrong-color=d23c3dff \
|
||||
--indicator \
|
||||
--clock \
|
||||
--time-color=ffffffff \
|
||||
--date-color=ffffffff \
|
||||
--time-font="JetBrainsMono Nerd Font" \
|
||||
--date-font="JetBrainsMono Nerd Font" \
|
||||
--radius=120
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
used=$(free -h --si | awk '/^Mem/ {print $3}')
|
||||
total="32G"
|
||||
|
||||
text="${used}/${total}"
|
||||
|
||||
echo "$text"
|
||||
echo "$text"
|
||||
|
||||
u=$(free --si | awk '/^Mem/ {print $3}')
|
||||
t=$(free --si | awk '/^Mem/ {print $2}')
|
||||
|
||||
u_num=${u%[A-Za-z]*}
|
||||
t_num=${t%[A-Za-z]*}
|
||||
|
||||
pct=$(awk -v u="$u_num" -v t="$t_num" 'BEGIN {printf "%.0f", (u/t)*100}')
|
||||
|
||||
if [ "$pct" -ge 90 ]; then
|
||||
echo "#ffcc66"
|
||||
else
|
||||
echo "#ffffff"
|
||||
fi
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MOUSE_PATH=$(upower -e | grep -E 'hidpp_battery_[0-9]+$' | head -n 1)
|
||||
|
||||
if [[ -n "$MOUSE_PATH" ]] && upower -i "$MOUSE_PATH" 2>/dev/null | grep -q "present:.*yes"; then
|
||||
perc=$(upower -i "$MOUSE_PATH" | awk '/percentage:/ {print $2}')
|
||||
|
||||
echo "MOUSE:$perc"
|
||||
echo "MOUSE:$perc"
|
||||
|
||||
raw=${perc%\%}
|
||||
|
||||
if [ "$raw" -ge 15 ]; then
|
||||
echo "#ffffff"
|
||||
else
|
||||
echo "#ffcc66"
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
STATUS="$(mullvad status 2>/dev/null)"
|
||||
|
||||
if echo "$STATUS" | grep -q "^Connected"; then
|
||||
echo "UP"
|
||||
echo "UP"
|
||||
echo "#00b894"
|
||||
else
|
||||
echo "DOWN"
|
||||
echo "DOWN"
|
||||
echo "#ff0000"
|
||||
fi
|
||||
|
||||
|
After Width: | Height: | Size: 478 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 178 KiB |
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
usage=$(mpstat 1 1 | awk '/Average/ {print 100 - $NF}')
|
||||
|
||||
temp=$(sensors | awk '/^Tctl:/ {gsub(/[+°]C/, "", $2); print $2; exit}')
|
||||
temp=${temp#+}
|
||||
|
||||
text="${usage}% ${temp}°C"
|
||||
|
||||
echo "$text"
|
||||
echo "$text"
|
||||
|
||||
if [ "$(printf "%.0f" "$usage")" -ge 90 ]; then
|
||||
echo "#ffcc66"
|
||||
else
|
||||
echo "#ffffff"
|
||||
fi
|
||||
@@ -1,8 +1,22 @@
|
||||
#!/bin/bash
|
||||
# ~/.config/i3/scripts/gpu_usage.sh
|
||||
|
||||
if [ -f /sys/module/amdgpu/drivers/pci:amdgpu/0000:2b:00.0/gpu_busy_percent ]; then
|
||||
usage=$(awk '{print $1}' /sys/module/amdgpu/drivers/pci:amdgpu/0000:2b:00.0/gpu_busy_percent)
|
||||
echo "${usage}%"
|
||||
if command -v rocm-smi &>/dev/null; then
|
||||
output=$(rocm-smi --showtemp --showuse)
|
||||
temp=$(echo "$output" | awk -F': ' '/Sensor edge/ {print $3; exit}')
|
||||
usage=$(echo "$output" | awk -F': ' '/GPU use/ {print $3; exit}')
|
||||
|
||||
echo "${usage}% ${temp}°C"
|
||||
echo "${usage}% ${temp}°C"
|
||||
|
||||
if [ "$usage" -ge 90 ]; then
|
||||
echo "#ffcc66"
|
||||
else
|
||||
echo "#ffffff"
|
||||
fi
|
||||
else
|
||||
echo "N/A"
|
||||
echo "N/A"
|
||||
echo "N/A"
|
||||
echo "#ffffff"
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,10 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
KBD_PATH="/org/freedesktop/UPower/devices/keyboard_dev_D7_E8_29_FA_0F_CF"
|
||||
KBD_PATH="/org/freedesktop/UPower/devices/keyboard_dev_D7_E8_29_FA_0F_D0"
|
||||
|
||||
if upower -i "$KBD_PATH" 2>/dev/null | grep -q "present:.*yes"; then
|
||||
perc=$(upower -i "$KBD_PATH" | awk '/percentage:/ {print $2}')
|
||||
|
||||
echo "KBD:$perc"
|
||||
echo "KBD:$perc"
|
||||
|
||||
raw=${perc%\%}
|
||||
|
||||
if [ "$raw" -ge 15 ]; then
|
||||
echo "#ffffff"
|
||||
else
|
||||
echo "#ffcc66"
|
||||
fi
|
||||
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
HOST=192.168.0.200
|
||||
|
||||
if ping -c1 -W1 "$HOST" >/dev/null 2>&1; then
|
||||
echo "UP"
|
||||
echo "UP"
|
||||
echo "#00b894"
|
||||
else
|
||||
echo "DOWN"
|
||||
echo "DOWN"
|
||||
echo "#ff0000"
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
used=$(free -h --si | awk '/^Mem/ {print $3}')
|
||||
total="32G"
|
||||
|
||||
text="${used}/${total}"
|
||||
|
||||
echo "$text"
|
||||
echo "$text"
|
||||
|
||||
u=$(free --si | awk '/^Mem/ {print $3}')
|
||||
t=$(free --si | awk '/^Mem/ {print $2}')
|
||||
|
||||
u_num=${u%[A-Za-z]*}
|
||||
t_num=${t%[A-Za-z]*}
|
||||
|
||||
pct=$(awk -v u="$u_num" -v t="$t_num" 'BEGIN {printf "%.0f", (u/t)*100}')
|
||||
|
||||
if [ "$pct" -ge 90 ]; then
|
||||
echo "#ffcc66"
|
||||
else
|
||||
echo "#ffffff"
|
||||
fi
|
||||
@@ -4,7 +4,17 @@ MOUSE_PATH=$(upower -e | grep -E 'hidpp_battery_[0-9]+$' | head -n 1)
|
||||
|
||||
if [[ -n "$MOUSE_PATH" ]] && upower -i "$MOUSE_PATH" 2>/dev/null | grep -q "present:.*yes"; then
|
||||
perc=$(upower -i "$MOUSE_PATH" | awk '/percentage:/ {print $2}')
|
||||
|
||||
echo "MOUSE:$perc"
|
||||
echo "MOUSE:$perc"
|
||||
|
||||
raw=${perc%\%}
|
||||
|
||||
if [ "$raw" -ge 15 ]; then
|
||||
echo "#ffffff"
|
||||
else
|
||||
echo "#ffcc66"
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
STATUS="$(mullvad status 2>/dev/null)"
|
||||
|
||||
if echo "$STATUS" | grep -q "^Connected"; then
|
||||
echo "UP"
|
||||
echo "UP"
|
||||
echo "#00b894"
|
||||
else
|
||||
echo "DOWN"
|
||||
echo "DOWN"
|
||||
echo "#ff0000"
|
||||
fi
|
||||
|
||||
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 478 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 178 KiB |
@@ -0,0 +1,9 @@
|
||||
aliases:
|
||||
dp: deployments
|
||||
sec: v1/secrets
|
||||
jo: jobs
|
||||
cr: clusterroles
|
||||
crb: clusterrolebindings
|
||||
ro: roles
|
||||
rb: rolebindings
|
||||
np: networkpolicies
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
cd "$HOME/documents" || exit 1
|
||||
|
||||
fd --type f . |
|
||||
fzf \
|
||||
--scheme=path \
|
||||
--prompt='documents> ' \
|
||||
--preview 'bat --style=numbers --color=always --line-range :300 {}' \
|
||||
--bind 'enter:become(nvim {})'
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
file=$(
|
||||
cd "$HOME/documents" || exit 1
|
||||
fd --type f . | rofi -dmenu -i -p "documents"
|
||||
) || exit 0
|
||||
|
||||
[ -n "$file" ] || exit 0
|
||||
|
||||
path="$HOME/documents/$file"
|
||||
|
||||
case "$path" in
|
||||
*.pdf|*.PDF)
|
||||
exec zathura "$path"
|
||||
;;
|
||||
*)
|
||||
exec alacritty -e nvim "$path"
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
BW_ITEM_ID="00103432-dabe-4fad-b0c0-0f40ab1ebb36"
|
||||
export NODE_EXTRA_CA_CERTS="$HOME/.config/bitwarden-certs/vaultwarden-agres-site.pem"
|
||||
|
||||
# Ensure Bitwarden is available.
|
||||
if ! command -v bw >/dev/null 2>&1; then
|
||||
echo "Error: bw CLI not found." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ensure we have a usable Bitwarden session.
|
||||
BW_STATUS="$(bw status 2>/dev/null | jq -r '.status')"
|
||||
|
||||
case "$BW_STATUS" in
|
||||
unauthenticated)
|
||||
echo "Bitwarden is not logged in. Logging in..."
|
||||
bw login
|
||||
export BW_SESSION="$(bw unlock --raw)"
|
||||
;;
|
||||
locked)
|
||||
echo "Bitwarden vault is locked. Unlocking..."
|
||||
export BW_SESSION="$(bw unlock --raw)"
|
||||
;;
|
||||
unlocked)
|
||||
# Already unlocked in this shell/session.
|
||||
;;
|
||||
*)
|
||||
echo "Error: unknown Bitwarden status: $BW_STATUS" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Pull latest vault data if reachable. Do not fail hard if sync is unavailable.
|
||||
bw sync >/dev/null 2>&1 || echo "Warning: bw sync failed; using local Bitwarden cache." >&2
|
||||
|
||||
VPN_USER="$(bw get username "$BW_ITEM_ID")"
|
||||
VPN_PASS="$(bw get password "$BW_ITEM_ID")"
|
||||
|
||||
if [[ -z "$VPN_USER" || -z "$VPN_PASS" ]]; then
|
||||
echo "Error: username or password is empty for Bitwarden item: $BW_ITEM_ID" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Feed only the VPN password through stdin.
|
||||
# OpenConnect will still prompt interactively for 2FA if the server requires it.
|
||||
{
|
||||
printf '%s\n' "$VPN_PASS"
|
||||
cat /dev/tty
|
||||
} | sudo openconnect --timestamp --dump-http-traffic \
|
||||
--protocol=anyconnect \
|
||||
--user="$VPN_USER" \
|
||||
--passwd-on-stdin \
|
||||
--useragent='AnyConnect' \
|
||||
--gnutls-priority="NORMAL:-VERS-ALL:+VERS-TLS1.2:+RSA:+AES-128-CBC:+SHA1" \
|
||||
vpn-ac.uni-heidelberg.de/2fa
|
||||
@@ -1,6 +1,6 @@
|
||||
-- Set leader key to Space
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
vim.g.maplocalleader = ","
|
||||
|
||||
-- Load basic settings
|
||||
require("config.options")
|
||||
@@ -14,3 +14,27 @@ require("config.lsp")
|
||||
require("config.treesitter")
|
||||
require("config.telescope")
|
||||
require("config.cmp")
|
||||
|
||||
-- VimTeX Config
|
||||
|
||||
vim.g.vimtex_view_method = 'zathura'
|
||||
vim.g.vimtex_compiler_method = 'latexmk'
|
||||
vim.g.vimtex_compiler_latexmk = {
|
||||
build_dir = 'out'
|
||||
}
|
||||
|
||||
-- Language Checks
|
||||
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = { "tex", "plaintex", "latex", "markdown" },
|
||||
callback = function()
|
||||
vim.opt_local.spell = true
|
||||
vim.opt_local.linebreak = true
|
||||
vim.opt_local.spelllang = { "de_de", "en_us" }
|
||||
end,
|
||||
})
|
||||
|
||||
-- Diable Copilot on Start
|
||||
vim.g.copilot_filetypes = {
|
||||
["*"] = false,
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "73813308abc2eaeff2bc0d3f2f79270c491be9d7" },
|
||||
"barbar.nvim": { "branch": "master", "commit": "549ee11d97057eae207bafa2c23c315942cca097" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
|
||||
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "59334064f8604ca073791c25dcc5c9698865406e" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
||||
"mini.nvim": { "branch": "main", "commit": "79654ef28182986dcdd9e2d3506d1728fc7c4f79" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "9130e58424ad95bf2dd8b40afbb8cf04d648638c" },
|
||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "e688b486fe9291f151eae7e5c0b5a5c4ef980847" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "7e6af36c846017122e07e68803bbf95f3c729ca3" },
|
||||
"sonokai": { "branch": "master", "commit": "cf50520d1cddf7a4e7bccae650cdf0a6dd362a10" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "4d159616aee17796c2c94d2f5f87d2ee1a3f67c7" }
|
||||
}
|
||||
@@ -72,3 +72,7 @@ cmp.setup({
|
||||
},
|
||||
})
|
||||
|
||||
-- Disable cmp for markdown notes (no recommendations/autocomplete)
|
||||
cmp.setup.filetype("markdown", {
|
||||
enabled = false,
|
||||
})
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = false
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.termguicolors = true
|
||||
vim.opt.cursorline = true
|
||||
|
||||
@@ -54,15 +54,27 @@ require("lazy").setup({
|
||||
},
|
||||
|
||||
-- Markdown Preview Page
|
||||
{
|
||||
'MeanderingProgrammer/render-markdown.nvim',
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.nvim'}, -- if you use the mini.nvim suite
|
||||
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.icons' }, -- if you use standalone mini plugins
|
||||
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
|
||||
---@module 'render-markdown'
|
||||
---@type render.md.UserConfig
|
||||
opts = {},
|
||||
},
|
||||
{
|
||||
"iamcco/markdown-preview.nvim",
|
||||
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||
ft = { "markdown" },
|
||||
build = function()
|
||||
require("lazy").load({ plugins = { "markdown-preview.nvim" } })
|
||||
vim.fn["mkdp#util#install"]()
|
||||
end,
|
||||
config = function()
|
||||
vim.g.mkdp_echo_preview_url = 1
|
||||
|
||||
vim.cmd([[
|
||||
function! OpenMarkdownPreview(url)
|
||||
call jobstart(['xdg-open', a:url], {'detach': v:true})
|
||||
endfunction
|
||||
]])
|
||||
|
||||
vim.g.mkdp_browserfunc = "OpenMarkdownPreview"
|
||||
end,
|
||||
},
|
||||
|
||||
|
||||
-- Tabs
|
||||
{ 'romgrk/barbar.nvim',
|
||||
@@ -90,5 +102,18 @@ require("lazy").setup({
|
||||
lazy = false, -- neo-tree will lazily load itself
|
||||
},
|
||||
|
||||
-- GitHub Copilot
|
||||
"github/copilot.vim",
|
||||
|
||||
{
|
||||
"lervag/vimtex",
|
||||
lazy = false, -- we don't want to lazy load VimTeX
|
||||
-- tag = "v2.15", -- uncomment to pin to a specific release
|
||||
init = function()
|
||||
-- VimTeX configuration goes here, e.g.
|
||||
vim.g.vimtex_view_method = "zathura"
|
||||
end
|
||||
},
|
||||
|
||||
})
|
||||
|
||||
|
||||
@@ -5,7 +5,19 @@ set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
set $term alacritty
|
||||
set $menu wmenu-run -l 5
|
||||
set $menu wmenu-run -l 5 -N 000000ff -n ffffffff -M 00675aff -m ffffffff -S 00675aff -s ffffffff
|
||||
|
||||
# Workspace Names
|
||||
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"
|
||||
|
||||
# Font
|
||||
font pango:MesloLGL Nerd Font Mono 10
|
||||
@@ -14,8 +26,8 @@ font pango:MesloLGL Nerd Font Mono 10
|
||||
output * bg /home/agres/.config/sway/wallpaper/wallpaper.jpg fill
|
||||
|
||||
# Gaps
|
||||
gaps inner 2
|
||||
gaps outer 2
|
||||
gaps inner 0
|
||||
gaps outer 0
|
||||
|
||||
# Screen Locker
|
||||
exec_always /home/agres/.config/sway/scripts/lock-sway.sh
|
||||
@@ -24,6 +36,7 @@ exec_always /home/agres/.config/sway/scripts/lock-sway.sh
|
||||
bindsym $mod+Return exec $term
|
||||
bindsym $mod+Shift+q kill
|
||||
bindsym $mod+d exec $menu
|
||||
bindsym $mod+s exec ~/.local/bin/docpic-rofi
|
||||
floating_modifier $mod normal
|
||||
bindsym $mod+Shift+r reload
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||
@@ -48,33 +61,36 @@ exec_always /home/agres/.config/sway/scripts/lock-sway.sh
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# Stop focus from wrapping around edges (stay on last window in that direction)
|
||||
focus_wrapping no
|
||||
|
||||
# Workspaces:
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||
|
||||
# Layout stuff:
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
# bindsym $mod+s layout stacking
|
||||
# bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
bindsym $mod+f fullscreen
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
@@ -108,42 +124,66 @@ bindsym $mod+r mode "resize"
|
||||
# Special keys to adjust brightness via brightnessctl
|
||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
|
||||
# bindsym --locked button exec brightnessctl --device='kbd_backlight' set +10%
|
||||
# bindsym --locked button exec brightnessctl --device='kbd_backlight' set -10%
|
||||
# Special key to take a screenshot with grim
|
||||
bindsym Print exec grim
|
||||
|
||||
# Status Bar:
|
||||
bar {
|
||||
position top
|
||||
status_command while /home/agres/.config/sway/scripts/status.sh; do sleep 1; done
|
||||
status_command while /home/agres/.config/sway/scripts/status.sh; do sleep 0.5; done
|
||||
colors {
|
||||
background #000000
|
||||
statusline #ffffff
|
||||
background #323232
|
||||
inactive_workspace #32323200 #32323200 #5c5c5c
|
||||
separator #333333
|
||||
|
||||
focused_workspace #00675a #00675a #ffffff
|
||||
active_workspace #1c1c1c #1c1c1c #cccccc
|
||||
inactive_workspace #000000 #000000 #777777
|
||||
urgent_workspace #870000 #870000 #ffffff
|
||||
}
|
||||
}
|
||||
|
||||
input * {
|
||||
input type:keyboard {
|
||||
xkb_layout de
|
||||
xkb_variant nodeadkeys
|
||||
}
|
||||
|
||||
input "1452:641:Apple_SPI_Keyboard" {
|
||||
xkb_layout de
|
||||
xkb_variant nodeadkeys
|
||||
xkb_options altwin:swap_lalt_lwin
|
||||
}
|
||||
|
||||
input "1452:641:Apple_SPI_Trackpad" {
|
||||
pointer_accel -0.1
|
||||
natural_scroll enabled
|
||||
scroll_factor 0.3
|
||||
}
|
||||
|
||||
input type:pointer {
|
||||
accel_profile flat
|
||||
pointer_accel -0.4
|
||||
}
|
||||
|
||||
output eDP-1 {
|
||||
scale 1.65
|
||||
scale 1.85
|
||||
scale_filter linear
|
||||
}
|
||||
|
||||
# Opacity Settings
|
||||
for_window [app_id="Alacritty"] opacity 0.98
|
||||
for_window [app_id="Alacritty"] opacity 0.995
|
||||
|
||||
# Border Colors
|
||||
client.focused #00b5af #00b5af #fdf6e3 #073642
|
||||
client.focused_inactive #073642 #073642 #fdf6e3 #073642
|
||||
client.unfocused #073642 #073642 #fdf6e3 #073642
|
||||
# Show a slightly thicker border so focused window color is more obvious
|
||||
default_border pixel 3
|
||||
default_floating_border pixel 3
|
||||
|
||||
# Window overlay theme
|
||||
client.focused #00b894 #00675a #ffffff #00b894 #00675a
|
||||
client.focused_inactive #303030 #1c1c1c #cccccc #303030 #1c1c1c
|
||||
client.unfocused #1c1c1c #000000 #999999 #1c1c1c #000000
|
||||
client.urgent #ff5f5f #870000 #ffffff #ff5f5f #870000
|
||||
client.placeholder #000000 #000000 #ffffff #000000 #000000
|
||||
|
||||
include /etc/sway/config.d/*
|
||||
|
||||
@@ -4,7 +4,7 @@ set -euo pipefail
|
||||
IMG_PATH="${XDG_RUNTIME_DIR:-/tmp}/lock.png"
|
||||
|
||||
exec swayidle -w \
|
||||
timeout 30 "grim -t png \"$IMG_PATH\" && magick \"$IMG_PATH\" -blur 0x12 \"$IMG_PATH\" && swaylock -f -i \"$IMG_PATH\"" \
|
||||
timeout 600 'swaymsg "output * power off"' \
|
||||
timeout 4800 "grim -t png \"$IMG_PATH\" && magick \"$IMG_PATH\" -blur 0x12 \"$IMG_PATH\" && swaylock -f -i \"$IMG_PATH\"" \
|
||||
timeout 4810 'swaymsg "output * power off"' \
|
||||
resume 'swaymsg "output * power on"' \
|
||||
before-sleep "grim -t png \"$IMG_PATH\" && magick \"$IMG_PATH\" -blur 0x12 \"$IMG_PATH\" && swaylock -f -i \"$IMG_PATH\""
|
||||
|
||||
@@ -1,8 +1,27 @@
|
||||
#!/bin/bash
|
||||
mem=$(free -h | awk '/Mem:/ {print $3 "/" $2}')
|
||||
cpu=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {printf "%.1f%%", usage}')
|
||||
bat=$(cat /sys/class/power_supply/macsmc-battery/capacity 2>/dev/null || echo "N/A")
|
||||
time=$(date "+%d.%m %H:%M:%S")
|
||||
MEM=$(free -h --si | awk '/Mem:/ {print $3 "/" $2}')
|
||||
|
||||
echo "$USER | CPU: $cpu | MEM: $mem | BAT: $bat% | $time"
|
||||
CPU=$(mpstat 1 1 | awk '/Average/ {printf "%.1f%%\n", 100 - $NF"%"}')
|
||||
|
||||
CAP=$(cat /sys/class/power_supply/macsmc-battery/capacity 2>/dev/null || echo "N/A")
|
||||
STAT=$(cat /sys/class/power_supply/macsmc-battery/status 2>/dev/null || stat="")
|
||||
if [[ $CAP != "N/A" && $STAT == "Charging" ]]; then
|
||||
BAT="${CAP}% (C)"
|
||||
elif [[ $CAP != "N/A" ]]; then
|
||||
BAT="${CAP}%"
|
||||
else
|
||||
BAT="N/A"
|
||||
fi
|
||||
|
||||
TIME=$(date "+%d.%m %H:%M")
|
||||
|
||||
#BRIGHT=$(echo "$(brightnessctl get) / 4.2" | bc)
|
||||
|
||||
#VPN_STATUS=$(mullvad status 2>/dev/null | grep -q '^Connected' && echo U || echo D)
|
||||
LAB_STATUS=$(ping -c1 -W1 192.168.0.200 >/dev/null 2>&1 && echo U || echo D )
|
||||
|
||||
UPTIME=$(awk '{t=int($1); d=t/86400; h=(t%86400)/3600; m=(t%3600)/60; if(d>0) printf "%dd %02d:%02dh\n", d,h,m; else printf "%02d:%02dh\n", h,m}' /proc/uptime)
|
||||
|
||||
POWER=$(powerprofilesctl get | tr '[:lower:]' '[:upper:]')
|
||||
|
||||
echo "$USER | UPT: $UPTIME | POW: $POWER | LAB: $LAB_STATUS | CPU: $CPU | MEM: $MEM | BAT: $BAT | $TIME "
|
||||
|
||||
|
After Width: | Height: | Size: 3.0 MiB |
@@ -0,0 +1,2 @@
|
||||
set -g mouse on
|
||||
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||
@@ -0,0 +1 @@
|
||||
set selection-clipboard clipboard
|
||||
@@ -0,0 +1,73 @@
|
||||
// Zed settings
|
||||
//
|
||||
// For information on how to configure Zed, see the Zed
|
||||
// documentation: https://zed.dev/docs/configuring-zed
|
||||
//
|
||||
// To see all of Zed's default settings without changing your
|
||||
// custom settings, run `zed: open default settings` from the
|
||||
// command palette (cmd-shift-p / ctrl-shift-p)
|
||||
{
|
||||
"go_to_definition_fallback": "find_all_references",
|
||||
"linked_edits": true,
|
||||
"toolbar": {
|
||||
"agent_review": false
|
||||
},
|
||||
"minimap": {
|
||||
"show": "never"
|
||||
},
|
||||
"scrollbar": {
|
||||
"show": "never"
|
||||
},
|
||||
"relative_line_numbers": "enabled",
|
||||
"tab_size": 2,
|
||||
"project_panel": {
|
||||
"dock": "left"
|
||||
},
|
||||
"outline_panel": {
|
||||
"dock": "left"
|
||||
},
|
||||
"collaboration_panel": {
|
||||
"dock": "left"
|
||||
},
|
||||
"agent": {
|
||||
"dock": "right",
|
||||
"favorite_models": [],
|
||||
"model_parameters": []
|
||||
},
|
||||
"git_panel": {
|
||||
"dock": "left"
|
||||
},
|
||||
"soft_wrap": "editor_width",
|
||||
"format_on_save": "off",
|
||||
"autosave": "on_focus_change",
|
||||
"inlay_hints": {
|
||||
"enabled": false,
|
||||
"show_value_hints": true,
|
||||
"show_type_hints": true,
|
||||
"show_parameter_hints": true,
|
||||
"show_other_hints": true,
|
||||
"show_background": false,
|
||||
"edit_debounce_ms": 700,
|
||||
"scroll_debounce_ms": 50,
|
||||
"toggle_on_modifiers_press": {
|
||||
"control": false,
|
||||
"alt": false,
|
||||
"shift": false,
|
||||
"platform": false,
|
||||
"function": false
|
||||
}
|
||||
},
|
||||
"telemetry": {
|
||||
"diagnostics": false,
|
||||
"metrics": false
|
||||
},
|
||||
"vim_mode": true,
|
||||
"icon_theme": "Zed (Default)",
|
||||
"ui_font_size": 15.0,
|
||||
"buffer_font_size": 15,
|
||||
"theme": {
|
||||
"mode": "dark",
|
||||
"light": "Gruvbox Light",
|
||||
"dark": "Ayu Dark"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
# Oh my zsh
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
ZSH_THEME="eastwood"
|
||||
HIST_STAMPS="dd.mm.yyyy"
|
||||
RPROMPT='%{$fg[cyan]%}%n:%m%{$reset_color%}'
|
||||
plugins=(git sudo)
|
||||
|
||||
# Load sources
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
case "$HOST" in
|
||||
arch) source ~/.zshrc_arch ;;
|
||||
fedora-mac) source ~/.zshrc_fedora ;;
|
||||
esac
|
||||
|
||||
source /usr/share/fzf/key-bindings.zsh
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
if [[ -n $SSH_CONNECTION ]]; then
|
||||
export EDITOR='nvim'
|
||||
else
|
||||
export EDITOR='nvim'
|
||||
fi
|
||||
|
||||
# Alais: ls to run tree (without any flags)
|
||||
unalias ls 2>/dev/null
|
||||
ls() {
|
||||
if [[ $# -eq 0 ]]; then
|
||||
tree -L 1
|
||||
else
|
||||
command ls -G "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Alias: list all modified and new files in current directory
|
||||
alias lsgit='git status --porcelain | cut -c 4- | xargs ls -l'
|
||||
|
||||
# Bluetooth headphones
|
||||
alias airpods-connect='echo -e "connect 80:95:3A:DC:8E:41" | bluetoothctl >> /dev/null'
|
||||
alias airpods-disconnect='echo -e "disconnect 80:95:3A:DC:8E:41" | bluetoothctl >> /dev/null'
|
||||
alias airpods='echo -e "info 80:95:3A:DC:8E:41" | bluetoothctl | grep "Connected: "'
|
||||
|
||||
# Alias: avoid nano
|
||||
alias nano=nvim
|
||||
|
||||
# Alias quick mount network smdb drive
|
||||
alias md0='sudo mount --mkdir -t cifs //192.168.0.200/MD0 /mnt/md0 -o username=agres,uid=$(id -u),gid=$(id -g)'
|
||||
|
||||
# Load ssh keys in terminal
|
||||
alias loadssh='eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_ed25519'
|
||||
|
||||
# Tmux aliases
|
||||
alias ta='tmux attach -t'
|
||||
alias tn='tmux new -s'
|
||||
alias tl='tmux ls'
|
||||
alias tk='tmux kill-session -t'
|
||||
|
||||
# Pdf alias
|
||||
alias pdf='zathura'
|
||||
alias pdf-edit='okular'
|
||||
|
||||
# SSH Aliases
|
||||
alias vps01='tmux new-session -s vps01 "ssh agres@agres.online"'
|
||||
alias vps02='tmux new-session -s vps02 "ssh agres@agres.cloud"'
|
||||
alias pve01='tmux new-session -s pve01 "ssh agres@192.168.0.200"'
|
||||
|
||||
# Slop Alias
|
||||
claude() {
|
||||
if [ $# -eq 0 ]; then
|
||||
tmux new-session -s claude "claude"
|
||||
else
|
||||
command claude "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# GPG TTY Fix
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
# Fix unreadable color pallete for ExFat File systems
|
||||
LS_COLORS="$LS_COLORS:ow=01;36:"
|
||||
export LS_COLORS
|
||||
|
||||
# Add local and global bin files to path
|
||||
export PATH="/home/agres/.npm-global/bin:$PATH"
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# Brew Setup
|
||||
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv zsh)"
|
||||
|
||||
# Certificate for agres.site used by bitwarden cli
|
||||
export NODE_EXTRA_CA_CERTS="$HOME/.config/bitwarden-certs/vaultwarden-agres-site.pem"
|
||||
|
||||
# Atuin
|
||||
. "$HOME/.atuin/bin/env"
|
||||
|
||||
eval "$(atuin init zsh)"
|
||||
@@ -0,0 +1,14 @@
|
||||
# Start on boot
|
||||
if [[ -z $DISPLAY ]] && [[ $(tty) == /dev/tty1 ]]; then
|
||||
startx
|
||||
fi
|
||||
|
||||
# -- Env Paths ---
|
||||
export GOPATH=$HOME/.local/go/
|
||||
export GOBIN=$HOME/.local/go/bin
|
||||
export PATH=$PATH:$GOBIN
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# -- FzF ---
|
||||
source /usr/share/fzf/completion.zsh
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Start on boot
|
||||
if [[ -z $DISPLAY ]] && [[ $(tty) == /dev/tty1 ]]; then
|
||||
exec sway
|
||||
fi
|
||||
|
||||
# -- Env Paths ---
|
||||
export GOPATH=$HOME/.local/go/
|
||||
export GOBIN=$HOME/.local/go/bin
|
||||
export PATH=$PATH:$GOBIN
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# Shell function to turn on pc
|
||||
pc() {
|
||||
ssh -T root@192.168.0.254 'bash /root/wakeup.sh'
|
||||
}
|
||||
|
||||
alias copy='wl-copy --type text/plain <'
|
||||
alias copyimg='wl-copy --type image/png <'
|
||||