Compare commits

..

1 Commits

Author SHA1 Message Date
Henrik Bakken 8512162cd0 endos.py 2025-10-27 15:42:47 +01:00
147 changed files with 3286 additions and 3061 deletions
+1 -3
View File
@@ -1,5 +1,3 @@
.gitsecret/keys/random_seed
!*.secret
CONFIG/homeassistant/SERVICE_ACCOUNT.JSON
CONFIG/vdirsyncer/config
CONFIG/rclone/rclone.conf
homeassistant/SERVICE_ACCOUNT.JSON
+1 -3
View File
@@ -1,3 +1 @@
CONFIG/homeassistant/SERVICE_ACCOUNT.JSON:5a3eabcbc53278f7713423b0ea20d0558f6334f8a1f6aed2a2e4cfb2ca9c93ab
CONFIG/vdirsyncer/config:73434db7346e1d070c38c8099c0c8ec99925f4d89ba3e558875fa2a179f41a25
CONFIG/rclone/rclone.conf:85e963d7e0487bf4c10c63a135cc958259eb4156276661276fccb4d9595e79bd
homeassistant/SERVICE_ACCOUNT.JSON:5a3eabcbc53278f7713423b0ea20d0558f6334f8a1f6aed2a2e4cfb2ca9c93ab
-281
View File
@@ -1,281 +0,0 @@
## 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 = false
## 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 = "fulltext"
## which filter mode to use by default
## possible values: "global", "host", "session", "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 = "session"
## 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 = "auto"
## the maximum number of lines the interface should take up
## set it to 0 to always go full screen
inline_height = 20
## 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 = 5
## 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-query"
## 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 = true
## default history list format - can also be specified with the --format arg
# history_format = "{time}\t{command}\t{duration}"
## 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 = [
"^exit$",
"^ .*",
"_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. Press tab to return to the shell and edit.
# 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 = false
## 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",
# "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
[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. Requires the daemon to be running in the background. Start it with `atuin daemon`
# enabled = 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"
## 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", "workspace", "directory" ]
-257
View File
@@ -1,257 +0,0 @@
#? Config file for btop v. 1.4.5
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "Default"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = True
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = False
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
graph_symbol_gpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu mem net proc gpu0"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu lazy"
#* Reverse sorting order, True or False.
proc_reversed = False
#* Show processes as a tree.
proc_tree = False
#* Use the cpu graph colors in the process list.
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = True
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = False
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
#* Show cpu graph for each process.
proc_cpu_graphs = True
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = False
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "Auto"
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "Auto"
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
show_gpu_info = "Auto"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = True
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
show_cpu_watts = True
#* Show cpu temperature.
check_temp = True
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
#* Show CPU frequency.
show_cpu_freq = True
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = False
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
#* If swap memory should be shown in memory box.
show_swap = True
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
#* If mem box should be split to also show disks info.
show_disks = False
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True
#* Starts with the Network Interface specified here.
net_iface = ""
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
base_10_bitrate = "Auto"
#* Show battery stats in top right if battery is present.
show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Show power stats of battery next to charge indicator.
show_battery_watts = True
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = True
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
rsmi_measure_pcie_speeds = True
#* Horizontally mirror the GPU graph.
gpu_mirror_graph = True
#* Custom gpu0 model name, empty string to disable.
custom_gpu_name0 = ""
#* Custom gpu1 model name, empty string to disable.
custom_gpu_name1 = ""
#* Custom gpu2 model name, empty string to disable.
custom_gpu_name2 = ""
#* Custom gpu3 model name, empty string to disable.
custom_gpu_name3 = ""
#* Custom gpu4 model name, empty string to disable.
custom_gpu_name4 = ""
#* Custom gpu5 model name, empty string to disable.
custom_gpu_name5 = ""
-197
View File
@@ -1,197 +0,0 @@
# -*- conf -*-
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no
# app-id=foot
# title=foot
# locked-title=no
font=monospace:size=10,JetBrainsMono Nerd Font:size=10
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# box-drawings-uses-font-glyphs=no
dpi-aware=yes
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed
# resize-delay-ms=100
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary
# workers=<number of logical CPUs>
[environment]
SYSTEMD_EDITOR=/usr/bin/nvim
EDITOR=/usr/bin/nvim
VISUAL=/usr/bin/nvim
PAGER="bat --style=header,rule,snip"
[bell]
# urgent=no
# notify=no
# command=
# command-focused=no
[scrollback]
lines=100000
# multiplier=3.0
# indicator-position=relative
# indicator-format=
[url]
# launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
# protocols=http, https, ftp, ftps, file, gemini, gopher
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
[cursor]
# style=block
# color=<inverse foreground/background>
# blink=no
# beam-thickness=1.5
# underline-thickness=<font underline thickness>
[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes
[colors]
alpha=0.9 # Adjust alpha to change transparency level
foreground=cdd6f4
background=1e1e2e
cursor=11111b f5e0dc
regular0=45475a
regular1=f38ba8
regular2=a6e3a1
regular3=f9e2af
regular4=89b4fa
regular5=f5c2e7
regular6=94e2d5
regular7=bac2de
bright0=585b70
bright1=f38ba8
bright2=a6e3a1
bright3=f9e2af
bright4=89b4fa
bright5=f5c2e7
bright6=94e2d5
bright7=a6adc8
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
16=fab387
17=f5e0dc
# ...
# 255 = <256-color palette #255>
# Misc colors
selection-foreground=cdd6f4
selection-background=414356
jump-labels=11111b fab387
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
search-box-no-match=11111b f38ba8
search-box-match=cdd6f4 313244
urls=89b4fa
[csd]
# preferred=server
size=0
# font=<primary font>
# color=<foreground color>
# hide-when-typing=no
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
search-start=Control+Shift+f
# font-increase=Control+plus Control+equal Control+KP_Add
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# show-urls-launch=Control+Shift+o
show-urls-copy=Control+Shift+y
# show-urls-persistent=none
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x
# unicode-input=none
# noop=none
[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
find-prev=Control+p
find-next=Control+n
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-to-word-boundary=Control+w
# extend-to-next-whitespace=Control+Shift+w
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none
[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t
[text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings]
# selection-override-modifiers=Shift
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-row=BTN_LEFT-3
# vim: ft=dosini
-115
View File
@@ -1,115 +0,0 @@
# output=<not set>
font=JetBrainsMono-Regular:size=14
dpi-aware=no
# use-bold=no
prompt=" "
# placeholder=
icon-theme=Qogir-dark
# icons-enabled=yes
# fields=filename,name,generic
# password-character=*
# filter-desktop=no
# match-mode=fzf
# sort-result=yes
# match-counter=no
# delayed-filter-ms=300
# delayed-filter-limit=20000
# show-actions=no
terminal=footclient -e
# launch-prefix=<not set>
# list-executables-in-path=no
# anchor=center
# x-margin=0
# y-margin=0
lines=16
width=50
tabs=4
horizontal-pad=50
vertical-pad=18
inner-pad=10
image-size-ratio=.25
# line-height=<use font metrics>
# letter-spacing=0
# layer=overlay
exit-on-keyboard-focus-loss=no
# cache=<not set>
# render-workers=<number of logical CPUs>
# match-workers=<number of logical CPUs>
[colors]
background=08052bdd
text=e3e3eaff
prompt=ff7f7fff
# placeholder=ffd966ff
input=ff7f7fff
match=FFE57Fff
selection-match=FFE57Fff
selection=44475add
selection-text=FFFFFFff
# counter=93a1a1ff
border=7f3fbf55
[border]
# width=1
# radius=10
[dmenu]
# mode=text # text|index
# exit-immediately-if-empty=no
[key-bindings]
# cancel=Escape Control+g Control+c Control+bracketleft
# execute=Return KP_Enter Control+y
# execute-or-next=Tab
# execute-input=Shift+Return Shift+KP_Enter
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace Control+h
# delete-prev-word=Mod1+BackSpace Control+BackSpace Control+w
# delete-line-backward=Control+u
# delete-next=Delete KP_Delete Control+d
# delete-next-word=Mod1+d Control+Delete Control+KP_Delete
# delete-line-forward=Control+k
# prev=Up Control+p
# prev-with-wrap=ISO_Left_Tab
# prev-page=Page_Up KP_Page_Up
# next=Down Control+n
# next-with-wrap=none
# next-page=Page_Down KP_Page_Down
# expunge=Shift+Delete
# clipboard-paste=Control+v XF86Paste
# primary-paste=Shift+Insert Shift+KP_Insert
# custom-N: *dmenu mode only*. Like execute, but with a non-zero
# exit-code; custom-1 exits with code 10, custom-2 with 11, custom-3
# with 12, and so on.
# custom-1=Mod1+1
# custom-2=Mod1+2
# custom-3=Mod1+3
# custom-4=Mod1+4
# custom-5=Mod1+5
# custom-6=Mod1+6
# custom-7=Mod1+7
# custom-8=Mod1+8
# custom-9=Mod1+9
# custom-10=Mod1+0
# custom-11=Mod1+exclam
# custom-12=Mod1+at
# custom-13=Mod1+numbersign
# custom-14=Mod1+dollar
# custom-15=Mod1+percent
# custom-16=Mod1+dead_circumflex
# custom-17=Mod1+ampersand
# custom-18=Mod1+asterix
# custom-19=Mod1+parentleft
-16
View File
@@ -1,16 +0,0 @@
[Settings]
gtk-theme-name=Arc-Dark
gtk-icon-theme-name=Qogir-dark
gtk-font-name=Noto Sans 10
gtk-cursor-theme-name=Qogir-dark
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium
gtk-xft-rgba=rgb
-19
View File
@@ -1,19 +0,0 @@
[main]
gtk-theme=Arc-Dark
time-format=%l:%M %p
start-hidden=1
modules=userinfo-module;powerbar-module
[userinfo]
round-image=true
horizontal-layout=false
under-clock=true
[powerbar]
show-labels=true
linked-buttons=true
reboot-command=systemctl reboot
poweroff-command=systemctl -i poweroff
suspend-command=systemctl suspend
userswitch-command=
logout-command=swaymsg exit
-46
View File
@@ -1,46 +0,0 @@
* {
border: none;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8)
}
window {
background-size: cover;
background-repeat: no-repeat;
background-position: center;
background-color: black;
}
#clock-label {
font-family: JetBrainsMono;
font-size: 64.0px;
}
#unlock-button {
background: none;
background-color: rgba(127, 63, 191, 0.4);
border: 2px solid rgba(127, 63, 191, 0.5);
padding: 4px;
}
#unlock-button:hover {
background-color: rgba(127, 63, 191, 0.9);
}
#input-field {
border-radius: 10px;
background-color: rgba(127, 127, 255, 0.1);
border: 2px solid rgba(127, 63, 191, 0.5);
padding-top: 5px;
padding-bottom: 5px;
}
#powerbar-box button {
background: none;
background-color: rgba(127, 63, 191, 0.4);
border: 2px solid rgba(127, 63, 191, 0.5);
border-radius: 10px;
padding: 4px;
}
#powerbar-box button:hover {
background-color: rgba(127, 63, 191, 0.9);
}
#input-label {
font-size: 0px;
}
#window-box infobar {
background-color: transparent;
}
Binary file not shown.
-30
View File
@@ -1,30 +0,0 @@
- id: "1733842664884"
alias: Varmestyring
description: ""
use_blueprint:
path: MikaelUlvesjo/nordpool_simple_blueprint.yaml
input:
grid_area: sensor.nordpool_kwh_no1_nok_3_095_025
hour_rank: 16
turnon:
- action: climate.set_temperature
metadata: {}
data:
temperature: 19.5
target:
device_id:
- b65d14f7ef6300f4939db8935072b756
- ca85a2f25f3d48681e8d7e32d9de5e8e
- 2e1665d98e2051ea6f30e0b6ea31e7c5
turnoff:
- action: climate.set_temperature
metadata: {}
data:
temperature: 18
target:
device_id:
- b65d14f7ef6300f4939db8935072b756
- ca85a2f25f3d48681e8d7e32d9de5e8e
- 2e1665d98e2051ea6f30e0b6ea31e7c5
allways_off: 5
allways_on: 1
-269
View File
@@ -1,269 +0,0 @@
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
http:
use_x_forwarded_for: true
trusted_proxies: 10.2.0.0/16
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
google_assistant:
project_id: homeassistant-mothership-1123
service_account: !include SERVICE_ACCOUNT.JSON
report_state: true
sensor:
- platform: nordpool
region: "NO1"
currency: "NOK"
low_price_cutoff: 0.95
# - platform: template
# sensors:
# # NORDPOOL PRICES
# nordpool_today_hr_00_01:
# friendly_name: "Today hour 0"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[0] }}"
# nordpool_today_hr_01_02:
# friendly_name: "Today hour 1"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[1] }}"
# nordpool_today_hr_02_03:
# friendly_name: "Today hour 2"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[2] }}"
# nordpool_today_hr_03_04:
# friendly_name: "Today hour 3"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[3] }}"
# nordpool_today_hr_04_05:
# friendly_name: "Today hour 4"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[4] }}"
# nordpool_today_hr_05_06:
# friendly_name: "Today hour 5"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[5] }}"
# nordpool_today_hr_06_07:
# friendly_name: "Today hour 6"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[6] }}"
# nordpool_today_hr_07_08:
# friendly_name: "Today hour 7"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[7] }}"
# nordpool_today_hr_08_09:
# friendly_name: "Today hour 8"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[8] }}"
# nordpool_today_hr_09_10:
# friendly_name: "Today hour 9"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[9] }}"
# nordpool_today_hr_10_11:
# friendly_name: "Today hour 10"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[10] }}"
# nordpool_today_hr_11_12:
# friendly_name: "Today hour 11"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[11] }}"
# nordpool_today_hr_12_13:
# friendly_name: "Today hour 12"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[12] }}"
# nordpool_today_hr_13_14:
# friendly_name: "Today hour 13"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[13] }}"
# nordpool_today_hr_14_15:
# friendly_name: "Today hour 14"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[14] }}"
# nordpool_today_hr_15_16:
# friendly_name: "Today hour 15"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[15] }}"
# nordpool_today_hr_16_17:
# friendly_name: "Today hour 16"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[16] }}"
# nordpool_today_hr_17_18:
# friendly_name: "Today hour 17"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[17] }}"
# nordpool_today_hr_18_19:
# friendly_name: "Today hour 18"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[18] }}"
# nordpool_today_hr_19_20:
# friendly_name: "Today hour 19"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[19] }}"
# nordpool_today_hr_20_21:
# friendly_name: "Today hour 20"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[20] }}"
# nordpool_today_hr_21_22:
# friendly_name: "Today hour 21"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[21] }}"
# nordpool_today_hr_22_23:
# friendly_name: "Today hour 22"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[22] }}"
# nordpool_today_hr_23_24:
# friendly_name: "Today hour 23"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[23] }}"
# nordpool_tomorrow_hr_00_01:
# friendly_name: "Tomorrow hour 0"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[0] }}"
# nordpool_tomorrow_hr_01_02:
# friendly_name: "Tomorrow hour 1"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[1] }}"
# nordpool_tomorrow_hr_02_03:
# friendly_name: "Tomorrow hour 2"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[2] }}"
# nordpool_tomorrow_hr_03_04:
# friendly_name: "Tomorrow hour 3"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[3] }}"
# nordpool_tomorrow_hr_04_05:
# friendly_name: "Tomorrow hour 4"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[4] }}"
# nordpool_tomorrow_hr_05_06:
# friendly_name: "Tomorrow hour 5"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[5] }}"
# nordpool_tomorrow_hr_06_07:
# friendly_name: "Tomorrow hour 6"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[6] }}"
# nordpool_tomorrow_hr_07_08:
# friendly_name: "Tomorrow hour 7"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[7] }}"
# nordpool_tomorrow_hr_08_09:
# friendly_name: "Tomorrow hour 8"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[8] }}"
# nordpool_tomorrow_hr_09_10:
# friendly_name: "Tomorrow hour 9"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[9] }}"
# nordpool_tomorrow_hr_10_11:
# friendly_name: "Tomorrow hour 10"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[10] }}"
# nordpool_tomorrow_hr_11_12:
# friendly_name: "Tomorrow hour 11"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[11] }}"
# nordpool_tomorrow_hr_12_13:
# friendly_name: "Tomorrow hour 12"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[12] }}"
# nordpool_tomorrow_hr_13_14:
# friendly_name: "Tomorrow hour 13"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[13] }}"
# nordpool_tomorrow_hr_14_15:
# friendly_name: "Tomorrow hour 14"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[14] }}"
# nordpool_tomorrow_hr_15_16:
# friendly_name: "Tomorrow hour 15"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[15] }}"
# nordpool_tomorrow_hr_16_17:
# friendly_name: "Tomorrow hour 16"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[16] }}"
# nordpool_tomorrow_hr_17_18:
# friendly_name: "Tomorrow hour 17"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[17] }}"
# nordpool_tomorrow_hr_18_19:
# friendly_name: "Tomorrow hour 18"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[18] }}"
# nordpool_tomorrow_hr_19_20:
# friendly_name: "Tomorrow hour 19"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[19] }}"
# nordpool_tomorrow_hr_20_21:
# friendly_name: "Tomorrow hour 20"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[20] }}"
# nordpool_tomorrow_hr_21_22:
# friendly_name: "Tomorrow hour 21"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[21] }}"
# nordpool_tomorrow_hr_22_23:
# friendly_name: "Tomorrow hour 22"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[22] }}"
# nordpool_tomorrow_hr_23_24:
# friendly_name: "Tomorrow hour 23"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[23] }}"
View File
View File
-10
View File
@@ -1,10 +0,0 @@
aliases:
dp: deployments
sec: v1/secrets
jo: jobs
cr: clusterroles
crb: clusterrolebindings
ro: roles
rb: rolebindings
np: networkpolicies
gr: gitrepo
-48
View File
@@ -1,48 +0,0 @@
k9s:
liveViewAutoRefresh: false
gpuVendors: {}
screenDumpDir: /home/hjalmarlucius/.local/state/k9s/screen-dumps
refreshRate: 2
apiServerTimeout: 2m0s
maxConnRetry: 5
readOnly: false
noExitOnCtrlC: false
portForwardAddress: localhost
ui:
enableMouse: false
headless: false
logoless: false
crumbsless: false
splashless: false
reactive: false
noIcons: false
defaultsToFullScreen: false
useFullGVRTitle: false
skipLatestRevCheck: false
disablePodCounting: false
shellPod:
image: busybox:1.35.0
namespace: default
limits:
cpu: 100m
memory: 100Mi
imageScans:
enable: false
exclusions:
namespaces: []
labels: {}
logger:
tail: 100
buffer: 5000
sinceSeconds: -1
textWrap: false
disableAutoscroll: false
showTime: true
thresholds:
cpu:
critical: 90
warn: 70
memory:
critical: 90
warn: 70
defaultView: ""
-27
View File
@@ -1,27 +0,0 @@
font=UbuntuMono 12.5
background-color=#404552
text-color=#e5e9f0
width=315
height=200
padding=10
margin=10
progress-color=over #eceff480
icon-path=/usr/share/icons/Arc-X-D
max-icon-size=70
layer=overlay
anchor=bottom-center
border-size=2
border-radius=15
border-color=#5294e2
default-timeout=0
ignore-timeout=1
[urgency=normal]
border-color=#d08770
[urgency=high]
border-color=#bf616a
default-timeout=0
-38
View File
@@ -1,38 +0,0 @@
window {
background-color: rgba (38, 18, 57, 0.9);
color: #eceff4;
border-radius: 30px
}
/* search entry */
entry {
box-shadow: 0 0 6px 5px #2e3440;
background-color: rgba (0, 0, 0, 0.5)
}
button, image {
background-color: #3b4252;
background: none;
border: none;
margin: 10px
}
button:hover {
background-color: rgba (127, 63, 191, .4);
box-shadow: 0 0 6px 5px #190C26
}
/* in case you wanted to give category buttons a different look */
#category-button {
margin: 0 0px 0 0px
}
#pinned-box {
padding-bottom: 1px;
border-bottom: 1px solid gray
}
#files-box {
padding: 1px;
border: 1px solid gray
}
Binary file not shown.
-24
View File
@@ -1,24 +0,0 @@
add_newline = true
right_format = """$cmd_duration"""
[line_break]
disabled = false
[time]
disabled = false
[cmd_duration]
min_time = 1000
format = 'underwent [$duration](bold yellow)'
show_milliseconds = true
[directory]
truncation_length = 5
truncate_to_repo = false
truncation_symbol = '…/'
repo_root_style = "red"
before_repo_root_style = "cyan"
repo_root_format = '[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) '
[git_status]
disabled = true
-364
View File
@@ -1,364 +0,0 @@
# ------------------------------------------
# THEME
# ------------------------------------------
# Apply gtk theming
exec_always ~/.config/sway/scripts/import-gsettings
# mouse settings: don't refocus, don't move with output
focus_follows_mouse no
mouse_warping none
# Set inner/outer gaps
smart_gaps on
gaps inner 2
gaps outer 0
# Hide titlebar on windows:
default_border pixel 1
# Default Font
font pango:Noto Sans Regular 10
# Thin borders:
smart_borders on
# Title format for windows
for_window [shell="xdg_shell"] title_format "%title (%app_id)"
for_window [shell="x_wayland"] title_format "%class - %title"
# class border bground text indicator child_border
client.focused #556064 #F9CE5C #000000 #CB4B16 #FDF6E3
client.focused_inactive #CB4B16 #2F3D44 #1ABC9C #454948 #454948
client.unfocused #556064 #2F3D44 #1ABC9C #454948 #454948
client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2 #268BD2
client.placeholder #000000 #0C0C0C #ffffff #000000 #000000
client.background #2B2C2B
# Status Bar:
bar {
swaybar_command waybar
}
# ------------------------------------------
# DEFINITIONS
# ------------------------------------------
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Add Vim key support
set $left h
set $down j
set $up k
set $right l
# Set default terminal emulator
set $term footclient
# Application launcher
set $launcher fuzzel
# Application menu
set $menu nwg-drawer
# Power Menu
set $powermenu ~/.config/sway/scripts/power_menu.sh
# ------------------------------------------
# BINDINGS
# ------------------------------------------
# Launch the terminal
bindsym $mod+Return exec $term
bindsym $mod+Shift+Return exec foot
# Kill focused window
bindsym $mod+Shift+q kill
# Lock screen
bindsym $mod+f1 exec gtklock
# Reload the configuration file
bindsym $mod+Shift+c reload
# menus
bindsym {
# Open the power menu
$mod+Shift+e exec $powermenu
# Start your launcher
$mod+d exec $launcher
# Menu
$mod+Shift+d exec $menu
# Activities
$mod+p exec ~/.config/sway/scripts/window_switcher.sh
}
# move around
bindsym {
# Change window focus
$mod+Left focus left
$mod+Down focus down
$mod+Up focus up
$mod+Right focus right
# Vim key support
$mod+$left focus left
$mod+$down focus down
$mod+$up focus up
$mod+$right focus right
# Move the focused window
$mod+Shift+Left move left
$mod+Shift+Down move down
$mod+Shift+Up move up
$mod+Shift+Right move right
# Vim key support
$mod+Shift+$left move left
$mod+Shift+$down move down
$mod+Shift+$up move up
$mod+Shift+$right move right
}
# layout
bindsym {
# Set how the current window will be split
$mod+s splitv
$mod+v splith
$mod+q split toggle
# Switch the current container between different layout styles
$mod+w layout stacking
$mod+t layout tabbed
$mod+e layout toggle split
# Make the current focus fullscreen
$mod+f fullscreen
# Toggle between tiling and floating mode
$mod+Shift+space floating toggle
$mod+Ctrl+space sticky toggle
# Swap focus between the tiling area and the floating area
$mod+space focus mode_toggle
# Move focus to the parent container
$mod+a focus parent
# Move focus to the child container
$mod+Shift+a focus child
}
# scratchpad
bindsym {
# Move the currently focused window to the scratchpad
$mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
$mod+minus scratchpad show
}
# resize
# Move windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Change "normal" to "inverse" to switch left and right
floating_modifier $mod normal
bindsym {
# Resize with arrow keys
$mod+ctrl+Right resize shrink width 10 px
$mod+ctrl+Up resize grow height 10 px
$mod+ctrl+Down resize shrink height 10 px
$mod+ctrl+Left resize grow width 10 px
# Resize with Vim keys
$mod+ctrl+$right resize shrink width 10 px
$mod+ctrl+$up resize grow height 10 px
$mod+ctrl+$down resize shrink height 10 px
$mod+ctrl+$left resize grow width 10 px
}
# Resize floating windows with mouse scroll
bindsym --whole-window --border {
# Resize vertically
$mod+button4 resize shrink height 5 px or 5 ppt
$mod+button5 resize grow height 5 px or 5 ppt
# Resize horizontally
$mod+Shift+button4 resize shrink width 5 px or 5 ppt
$mod+Shift+button5 resize grow width 5 px or 5 ppt
}
# media keys
bindsym {
# Volume
XF86AudioRaiseVolume exec pamixer -ui 2
XF86AudioLowerVolume exec pamixer -ud 2
XF86AudioMute exec pamixer --toggle-mute
Pause exec pamixer -ui 2
Print exec pamixer -ud 2
Scroll_Lock exec pamixer --toggle-mute
# Player
XF86AudioPlay exec playerctl play-pause
XF86AudioNext exec playerctl next
XF86AudioPrev exec playerctl previous
# Backlight
XF86MonBrightnessUp exec brightnessctl -c backlight set +5%
XF86MonBrightnessDown exec brightnessctl -c backlight set 5%-
}
# workspaces
set {
$ws1 number 1
$ws2 number 2
$ws3 number 3
$ws4 number 4
$ws5 number 5
$ws6 number 6
$ws7 number 7
$ws8 number 8
$ws9 number 9
$ws10 number 10
}
include $HOME/.config/sway/local_config
# apps
bindsym {
# Snip a selection and pipe to swappy
$mod+Shift+s exec grim -g "$(slurp)" - | swappy -f -
# unicode picker
$mod+u exec unipicker --command "fuzzel --dmenu | wl-copy"
# Launch the browser
$mod+i exec qutebrowser
# Launch the file explorer
$mod+o exec pcmanfm
# Dismiss message
$mod+n exec makoctl dismiss
$mod+Shift+n exec makoctl dismiss -a
}
# config tools
set $mode_monitor (b) btop, (h) htop, (s) isd, (j) journal, (n) nvtop
mode "$mode_monitor" {
bindsym b exec footclient --app-id floating_shell --window-size-chars 140x50 btop, mode "default"
bindsym h exec footclient --app-id floating_shell --window-size-chars 140x50 htop, mode "default"
bindsym s exec footclient --app-id floating_shell --window-size-chars 140x50 isd, mode "default"
bindsym j exec footclient --app-id floating_shell --window-size-chars 140x50 lazyjournal, mode "default"
bindsym n exec footclient --app-id floating_shell --window-size-chars 140x50 nvtop, mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+m mode "$mode_monitor"
# ------------------------------------------
# AUTOSTART
# ------------------------------------------
# Auth with polkit-gnome
exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# Import environment variables for user systemd service manager
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
# Update dbus environments with display variables
exec hash dbus-update-activation-environment 2>/dev/null && \
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
# Idle configuration
exec_always swayidle -w \
timeout 240 'brightnessctl set 1' resume 'brightnessctl -r' \
timeout 1200 'gtklock -d' \
timeout 2400 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
before-sleep 'gtklock -d' \
after-resume 'swaymsg reload' \
idlehint 240
# Start foot server
exec_always --no-startup-id foot --server
exec {
# Desktop notifications
exec mako
# Set wallpaper
~/.azotebg
# Network Applet
nm-applet --indicator
# automount usb
pcmanfm --daemon-mode
# Bluetooth Applet
blueman-applet
# night-time color shift
wlsunset -l 59.91:10.76
}
exec_always {
# nwg-drawer
nwg-drawer -r -c 7 -is 90 -mb 10 -ml 50 -mr 50 -mt 10
# flashfocus
systemctl --user start flashfocus
# persist clipboard after close
pkill -x wl-clip-persist
wl-clip-persist --clipboard regular --all-mime-type-regex '(?i)^(?!image/x-inkscape-svg).+'
# enable noisetorch
noisetorch -u
noisetorch -i
}
# ------------------------------------------
# WINDOWS
# ------------------------------------------
# Custom windowing rules
for_window [class="Yad" instance="yad"] floating enable
for_window [app_id="yad"] floating enable
for_window [app_id="blueman-manager"] floating enable, resize set width 40 ppt height 30 ppt
for_window [app_id="pavucontrol" ] floating enable, resize set width 40 ppt height 30 ppt
for_window [window_role="pop-up"] floating enable
for_window [window_role="bubble"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [window_role="Preferences"] floating enable
for_window [window_type="dialog"] floating enable
for_window [window_type="menu"] floating enable
for_window [window_role="About"] floating enable
for_window [title="File Operation Progress"] floating enable, border pixel 1, sticky enable, resize set width 40 ppt height 30 ppt
for_window [app_id="floating_shell"] floating enable, border pixel 1, sticky enable
for_window [title="Picture in picture"] floating enable, sticky enable
for_window [title="Save File"] floating enable
for_window [app_id="firefox" title="Firefox — Sharing Indicator"] kill
# steam
# https://github.com/ValveSoftware/steam-for-linux/issues/1040
for_window [app_id="^steam$"] floating enable
for_window [app_id="^Steam$"] floating enable
for_window [app_id="^steam$" title="^Steam$"] floating disable
# Inhibit idle
for_window [app_id="firefox"] inhibit_idle fullscreen
for_window [app_id="Chromium"] inhibit_idle fullscreen
# Don't allow applications to inhibit shortcuts, i.e. grab total control of the
# keyboard. Chrome currently abuses this by enabling it for all "--app=..." shortcuts.
seat * shortcuts_inhibitor disable
# ------------------------------------------
# IO
# ------------------------------------------
input type:touchpad {
dwt enabled
tap disabled
natural_scroll enabled
accel_profile "adaptive"
}
input type:keyboard {
xkb_layout "us"
xkb_variant "altgr-weur"
xkb_options "caps:escape"
}
input type:mouse {
accel_profile "flat"
pointer_accel 0.5
}
-15
View File
@@ -1,15 +0,0 @@
#!/bin/sh
# usage: import-gsettings
config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
if [ ! -f "$config" ]; then exit 1; fi
gnome_schema="org.gnome.desktop.interface"
gtk_theme="$(grep 'gtk-theme-name' "$config" | cut -d'=' -f2)"
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | cut -d'=' -f2)"
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | cut -d'=' -f2)"
font_name="$(grep 'gtk-font-name' "$config" | cut -d'=' -f2)"
gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
gsettings set "$gnome_schema" icon-theme "$icon_theme"
gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
gsettings set "$gnome_schema" font-name "$font_name"
-34
View File
@@ -1,34 +0,0 @@
#!/bin/bash
SELECTION="$(printf "󰌾 Lock\n󰤄 Suspend\n󰍃 Log out\n Reboot\n Reboot to UEFI\n󰐥 Shutdown" | fuzzel --dmenu -a top-right -l 6 -w 18 -p "Select an option: ")"
confirm_action() {
local action="$1"
CONFIRMATION="$(printf "No\nYes" | fuzzel --dmenu -a top-right -l 2 -w 18 -p "$action?")"
[[ "$CONFIRMATION" == *"Yes"* ]]
}
case $SELECTION in
*"󰌾 Lock"*)
gtklock;;
*"󰤄 Suspend"*)
if confirm_action "Suspend"; then
systemctl suspend-then-hibernate
fi;;
*"󰍃 Log out"*)
if confirm_action "Log out"; then
swaymsg exit
fi;;
*" Reboot"*)
if confirm_action "Reboot"; then
systemctl reboot
fi;;
*" Reboot to UEFI"*)
if confirm_action "Reboot to UEFI"; then
systemctl reboot --firmware-setup
fi;;
*"󰐥 Shutdown"*)
if confirm_action "Shutdown"; then
systemctl poweroff
fi;;
esac
-32
View File
@@ -1,32 +0,0 @@
#!/bin/bash
# Define the lengths for each column
ws_length=2
app_id_length=14
name_length=50
# Fetch the data from swaymsg and format it
formatted_output=$(swaymsg -t get_tree | jq -r --arg ws_length "$ws_length" --arg app_id_length "$app_id_length" --arg name_length "$name_length" '
def lpad($len; $char):
if (.|length) > $len then $char * ($len - (.|length)) +.[:$len-1] + "\u2026" else $char * ($len - (.|length)) +. end;
def rpad($len; $char):
if (.|length) > $len then.[:$len-1] + "\u2026" else. + $char * ($len - (.|length)) end;
..
| objects
| select(.type == "workspace") as $ws
|..
| objects
| select(has("app_id"))
| (if.focused then "*" else " " end) as $asterisk
| "\($asterisk)[\($ws.name | lpad($ws_length | tonumber; " "))]\((.app_id // "xwayland") | lpad($app_id_length | tonumber; " ")): \(.name | rpad($name_length | tonumber; " ")) (\(.id))"
')
# Launch fuzzel with the formatted output
row=$(echo "$formatted_output" | fuzzel --dmenu --width=80 --lines=12)
# Get the container ID from the selection and focus the container
if [ -n "$row" ]; then
winid="${row##*(}"
winid="${winid%%)*}"
swaymsg "[con_id=$winid] focus"
fi
Binary file not shown.
-196
View File
@@ -1,196 +0,0 @@
{
"layer": "top", // Waybar at top layer
"position": "top", // Waybar position (top|bottom|left|right)
// "height": 30, // Auto-height is used when commented
// "width": 1280, // Full screen width when commented
"spacing": 16, // Gaps between modules (in px)
// See `man waybar` for more configuration options
// Configuration - modules-left
"modules-left": [
"custom/launcher",
"sway/workspaces",
"sway/mode",
"sway/window"
],
"custom/launcher": {
"format":"<span size='x-large'></span>",
"on-click": "exec nwg-drawer",
"tooltip": false
},
"sway/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"format": "{icon}",
"format-icons": {
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"10": "10"
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>",
"tooltip": false
},
"sway/window": {
"format": "{}",
//"all-outputs": true, // Active window shows only on active display when commented
"max-length": 120
},
// Configuration - modules-center
"modules-center": [
"systemd-failed-units", "network"
],
"systemd-failed-units": {
"hide-on-ok": false, // Do not hide if there is zero failed units.
"format": "Systemd ✗ {nr_failed}",
"format-ok": "Systemd ✓",
"system": true, // Monitor failed systemwide units.
"user": true, // Ignore failed user units.
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 120x45 isd'"
},
"network": {
"format-disabled": " Disabled",
"format-wifi": " {bandwidthDownBits:>} 󰶡 {bandwidthUpBits:>} 󰶣 ({signalStrength}%)",
"tooltip-format-wifi": "{essid}",
"format-ethernet": "󰈀 {bandwidthDownBits:>} 󰶡 {bandwidthUpBits:>} 󰶣",
"tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr}",
"format-disconnected": " Disconnected",
"on-click": "footclient --app-id floating_shell --window-size-chars 60x45 -e nmtui",
"interval": 2
},
// Configuration - modules-right
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
},
"tooltip-format-activated": "Idle Inhibitor Activated",
"tooltip-format-deactivated": "Idle Inhibitor Deactivated"
},
"cpu": {
"interval": 5,
"format": "{usage:>3}%",
"states": {
"warning": 70,
"critical": 90,
},
"on-click": "footclient --app-id floating_shell --window-size-chars 120x45 -e btop"
},
"custom/cputemp": {
"exec": "sensors | grep 'CPU:' | awk '{print substr($2,2); }'",
"format": " {}",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 80x45 watch sensors'",
"interval": 1
},
"memory": {
"interval": 5,
"format": "{:>3}%",
"on-click": "footclient --app-id floating_shell --window-size-chars 100x100 -e btop",
"states": {
"warning": 70,
"critical": 90
}
},
"disk#root": {
"path": "/",
"interval": 30,
"format": " / {specific_free:0.0f} of {specific_total:0.0f} GB free",
"unit": "GB",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 80x45 ncdu -x /'"
},
"backlight": {
"format": "{icon} {percent}%",
"format-icons": ["󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥"],
"tooltip-format": "Backlight (Scroll): {percent:}%",
"on-scroll-down": "brightnessctl -c backlight set 5%-",
"on-scroll-up": "brightnessctl -c backlight set +5%"
},
"pulseaudio": {
"scroll-step": 2,
"format": "{icon} {volume}%",
"format-muted":"󰝟 muted",
"format-icons": {
"headphones": "",
"handsfree": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["󰕿", "󰖀", "󰕾"]
},
"on-click": "pavucontrol",
"tooltip-format": "{icon} {volume}% {format_source}",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 120x12 pulsemixer'",
"on-click-middle": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +5%",
"on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -5%"
},
"include": "~/.config/waybar/local_config.jsonc",
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-icons": ["", "", "", "", ""]
},
"clock": {
"format": "󰅐 {:%H:%M}",
"format-alt": "󰅐 {:%OI:%M %p}",
"tooltip-format": " {:%A %m/%d}\n\n<tt><small>{calendar}</small></tt>",
"calendar": {
"on-scroll": 1,
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"days": "<span color='#ecc6d9'><b>{}</b></span>",
"weeks": "<span color='#99ffdd'><b>W{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b><u>{}</u></b></span>"
},
},
"actions": {
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
},
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 120x45 khal interactive'"
},
"tray": {
"icon-size": 16,
"spacing":10
},
"custom/power": {
"format":"⏻",
"on-click": "exec ~/.config/sway/scripts/power_menu.sh",
"tooltip": false
},
}
-186
View File
@@ -1,186 +0,0 @@
/* =============================================================================
*
* Waybar configuration
*
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
*
* =========================================================================== */
/* -----------------------------------------------------------------------------
* Keyframes
* -------------------------------------------------------------------------- */
@define-color highlight #685878 ;
@define-color base1 #19191e ;
@keyframes blink-warning {
70% {
color: white;
}
to {
color: white;
background-color: orange;
}
}
@keyframes blink-critical {
70% {
color: white;
}
to {
color: white;
background-color: red;
}
}
/* -----------------------------------------------------------------------------
* Base styles
* -------------------------------------------------------------------------- */
/* Reset all styles */
* {
border: none;
border-radius: 0;
min-height: 0;
margin: 1px;
padding: 0;
}
/* The whole bar */
#waybar {
background: transparent;
color: #e3e3ea;
background-color: @base1;
font-family: JetBrainsMono;
font-size: 13px;
}
/* Every modules */
#mode,
#network,
#custom-keyboard-layout,
#idle_inhibitor,
#cpu,
#memory,
#backlight,
#pulseaudio,
#battery,
#clock,
#tray {
padding:0.5rem 0.6rem;
margin: 1px 0px;
}
/* -----------------------------------------------------------------------------
* Module styles
* -------------------------------------------------------------------------- */
#custom-launcher {
margin-left:15px;
margin-right:10px;
}
#workspaces {
font-size:13px;
}
#workspaces button {
border-radius: 5px;
color: #eceff4;
padding: 1px 6px;
margin-right: 2px;
margin-left: 2px;
}
#workspaces button.focused {
border: 1px solid #d8dee9;
}
#workspaces button.urgent {
border-color: #c9545d;
color: #c9545d;
}
#mode {
background: @highlight;
border-bottom: 3px transparent;
color:white;
margin-left: 5px;
padding: 7px;
}
#window {
font-weight: bold;
}
#network.disconnected {
color: orange;
}
#cpu.warning {
color: orange;
}
#cpu.critical {
color: red;
}
#memory {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#memory.warning {
color: orange;
}
#memory.critical {
color: red;
animation-name: blink-critical;
animation-duration: 2s;
padding-left:5px;
padding-right:5px;
}
#backlight.icon {
}
#pulseaudio {
}
#pulseaudio.muted {
color: @highlight;
}
#battery {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.warning {
color: orange;
}
#battery.critical {
color: red;
}
#battery.warning.discharging {
animation-name: blink-warning;
animation-duration: 3s;
}
#battery.critical.discharging {
animation-name: blink-critical;
animation-duration: 2s;
}
#custom-power {
margin-left:15px;
margin-right:15px;
font-size:15px;
}
-70
View File
@@ -1,70 +0,0 @@
# --- env ---
export SYSTEMD_EDITOR=nvim
export EDITOR=nvim
export VISUAL=nvim
export PAGER="bat --style=header,rule,snip"
export PATH=~/.local/bin:$PATH
export BROWSER=/usr/bin/qutebrowser
export HISTFILE=~/.config/zsh/history
export HISTSIZE=200000
export SAVEHIST=200000
# --- aliases ---
alias ls='ls --color=auto -Ah'
alias ..='cd ..'
alias ...='cd ../..'
# --- basic keybinds ---
bindkey '^[[Z' reverse-menu-complete # shift-tab
bindkey '^[^M' self-insert-unmeta # alt+enter newline
bindkey "^[^?" backward-kill-word # alt+backspace
# --- options ---
setopt HIST_IGNORE_ALL_DUPS HIST_IGNORE_SPACE SHARE_HISTORY EXTENDED_HISTORY
setopt AUTO_CD AUTO_MENU
setopt AUTO_PUSHD PUSHD_SILENT PUSHD_TO_HOME
setopt NO_NOMATCH
WORDCHARS='_-*?.[]~=&;!#$%^(){}<>'
# --- command line to EDITOR ---
autoload -Uz edit-command-line
zle -N edit-command-line
bindkey '^X^E' edit-command-line
# --- autocompletion ---
autoload -Uz compinit
compinit -d "~/.config/zsh/zcompdump"
zstyle ':completion:*' menu select
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' 'r:|[._-]=** r:|=**'
zstyle ':completion:*' list-colors ''
if command -v kubectl >/dev/null 2>&1; then
source <(kubectl completion zsh)
fi
# --- div plugins ---
# autosuggestions must come before atuin
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
eval "$(zoxide init zsh)"
eval "$(starship init zsh)"
# --- vi mode ---
bindkey -v
source /usr/share/zsh/plugins/zsh-vi-mode/zsh-vi-mode.plugin.zsh
# --- search ---
# fzf: Ctrl-T, Alt-C
FZF_DEFAULT_COMMAND='fd --type f --hidden --exclude .git' \
FZF_CTRL_R_COMMAND= \
FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" \
source <(fzf --zsh)
# atuin: Ctrl+R, /
eval "$(atuin init zsh)"
# handle collisions
function zvm_after_init() {
bindkey -M vicmd '^R' redo
bindkey -M viins '^R' atuin-search
}
# --- syntax hl ---
# must be the last plugins sourced
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
@@ -1,7 +0,0 @@
[Desktop Entry]
Type=Application
Name=file-roller
Exec=file-roller %f
Categories=FileTools;FileManager;
MimeType=application/zip
Terminal=false
+36
View File
@@ -0,0 +1,36 @@
import pdb
class Config(pdb.DefaultConfig):
editor = "e"
stdin_paste = "epaste"
filename_color = pdb.Color.lightgray
use_terminal256formatter = False
# exec_if_unfocused = "play ~/sounds/dialtone.wav 2> /dev/null &"
def __init__(self):
# import readline
# readline.parse_and_bind('set convert-meta on')
# readline.parse_and_bind('Meta-/: complete')
try:
from pygments.formatters import terminal
except ImportError:
pass
else:
self.colorscheme = terminal.TERMINAL_COLORS.copy()
self.colorscheme.update(
{
terminal.Keyword: ("darkred", "red"),
terminal.Number: ("darkyellow", "yellow"),
terminal.String: ("brown", "green"),
terminal.Name.Function: ("darkgreen", "blue"),
terminal.Name.Namespace: ("teal", "cyan"),
}
)
def setup(self, pdb):
# make 'l' an alias to 'longlist'
Pdb = pdb.__class__
Pdb.do_l = Pdb.do_longlist
Pdb.do_st = Pdb.do_sticky
+8
View File
@@ -0,0 +1,8 @@
# required for qt5ct to know QT_QPA_PLATFORMTHEME
export QT_QPA_PLATFORMTHEME=qt5ct
export SYSTEMD_EDITOR=/usr/bin/nvim
export EDITOR=/usr/bin/nvim
export VISUAL=/usr/bin/nvim
export TERMINAL=/usr/bin/footclient
export PAGER="bat --style=header,rule,snip"
export BROWSER=/usr/bin/qutebrowser
-1
View File
@@ -1 +0,0 @@
export ZDOTDIR="$HOME/.config/zsh"
@@ -1 +0,0 @@
br_netfilter
@@ -0,0 +1,8 @@
[Login]
IdleAction=suspend-then-hibernate
IdleActionSec=10min
HandlePowerKey=suspend-then-hibernate
HandlePowerKeyLongPress=poweroff
HandleLidSwitch=suspend-then-hibernate
HandleLidSwitchExternalPower=suspend-then-hibernate
HandleLidSwitchDocked=ignore
@@ -1,2 +1,2 @@
[Sleep]
[sleep]
HibernateDelaySec=30min
+2 -2
View File
@@ -25,8 +25,8 @@ icon-signed=✔
icon-signed-encrypted=✔
icon-unknown=✘
icon-invalid=⚠
reverse-thread-order=false
threading-enabled=false
reverse-thread-order=true
threading-enabled=true
[viewer]
always-show-mime=true
+2 -2
View File
@@ -73,12 +73,12 @@ D = :delete-message<Enter>
<tab> = :next-part<Enter>
<C-o> = :prev-part<Enter>
<backtab> = :prev-part<Enter>
<C-l> = :open-link <space>
A = :unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>
aa = :archive flat<Enter>
D = :delete-message<Enter>
dd = :mv Trash<Enter>
f = :open-link <space>
<C-f> = :forward -A<Enter>
f = :forward -A<Enter>
H = :toggle-headers<Enter>
J = :next-message<Enter>
K = :prev-message<Enter>
@@ -1,30 +0,0 @@
{
"disk#hdd1": {
"path": "/mnt/hdd1",
"interval": 30,
"format": " /mnt/hdd1 {specific_free:0.0f} of {specific_total:0.0f} GB free",
"unit": "GB",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 80x45 ncdu -x /mnt/hdd1/'"
},
"custom/nvidia": {
"exec": "nvidia-smi --query-gpu=utilization.gpu,memory.used,temperature.gpu --format=csv,nounits,noheader | sed 's/\\([0-9]\\+\\), \\([0-9]\\+\\), \\([0-9]\\+\\)/\\1% \\2MB \\3°C/g'",
"format": "󰓅 {}",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 120x45 nvtop'",
"interval": 1
},
"modules-right": [
"idle_inhibitor",
"cpu",
"custom/cputemp",
"memory",
"custom/nvidia",
"disk#root",
"disk#hdd1",
"backlight",
"pulseaudio",
"battery",
"clock",
"tray",
"custom/power"
]
}
@@ -0,0 +1,12 @@
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
exec "qtgreet; swaymsg exit"
bindsym Mod4+shift+e exec swaynag \
-t warning \
-m 'What do you want to do?' \
-b 'Poweroff' 'sudo poweroff' \
-b 'Reboot' 'sudo reboot'
output DP-1 resolution 2560x1440 position 0 0
# include /etc/sway/config.d/*
@@ -1,3 +0,0 @@
output DP-1 resolution 2560x1440 position 0 0
output DP-2 resolution 3840x2160 position 2560 0
exec "regreet; swaymsg exit"
@@ -1,3 +0,0 @@
[Login]
HandlePowerKey=ignore
HandlePowerKeyLongPress=poweroff
@@ -1,5 +0,0 @@
[Sleep]
AllowSuspend=no
AllowHibernation=no
AllowHybridSleep=no
AllowSuspendThenHibernate=no
@@ -0,0 +1,34 @@
{
"disk#disk1": {
"path": "/",
"interval": 30,
"format": " / {specific_free:0.0f} of {specific_total:0.0f} GB free",
"unit": "GB",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 80x45 ncdu -x /'"
},
"disk#disk2": {
"path": "/mnt/hdd1",
"interval": 30,
"format": " /mnt/hdd1 {specific_free:0.0f} of {specific_total:0.0f} GB free",
"unit": "GB",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 80x45 ncdu -x /mnt/hdd1/'"
},
"network": {
"interface": "enp6s0",
"interval": 5,
"format-wifi": "{icon}",
"format-ethernet": "󰈀",
"format-disconnected": "󰖪",
"format-disabled": "󰀝",
"format-icons": [ "󰤯", "󰤟", "󰤢", "󰤥", "󰤨" ],
"format-wifi": "{icon} {ipaddr} {essid} ({signalStrength}%)",
"format-ethernet": "{icon} {ipaddr}",
"format-disconnected": "", //An empty format will hide the module.
"tooltip-format": "{icon} {ifname}: {ipaddr}",
"tooltip-format-ethernet": "{icon} {ifname}: {ipaddr}",
"tooltip-format-wifi": "{icon} {ifname} ({essid}): {ipaddr} ({signalStrength}%)",
"tooltip-format-disconnected": "{icon} disconnected",
"tooltip-format-disabled": "{icon} disabled",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 60x45 nmtui connect'"
}
}
@@ -1,32 +0,0 @@
# input
input type:tablet_tool map_to_region 2560 0 2560 1440
# output
output DP-1 resolution 5120x1440
# workspaces
bindsym {
# Switch to workspace
$mod+1 workspace $ws1
$mod+2 workspace $ws2
$mod+3 workspace $ws3
$mod+4 workspace $ws4
$mod+5 workspace $ws5
$mod+6 workspace $ws6
$mod+7 workspace $ws7
$mod+8 workspace $ws8
$mod+9 workspace $ws9
$mod+0 workspace $ws10
# Move focused container to workspace
$mod+Shift+1 move container to workspace $ws1
$mod+Shift+2 move container to workspace $ws2
$mod+Shift+3 move container to workspace $ws3
$mod+Shift+4 move container to workspace $ws4
$mod+Shift+5 move container to workspace $ws5
$mod+Shift+6 move container to workspace $ws6
$mod+Shift+7 move container to workspace $ws7
$mod+Shift+8 move container to workspace $ws8
$mod+Shift+9 move container to workspace $ws9
$mod+Shift+0 move container to workspace $ws10
}
@@ -1,30 +0,0 @@
{
"disk#hdd1": {
"path": "/mnt/hdd1",
"interval": 30,
"format": " /mnt/hdd1 {specific_free:0.0f} of {specific_total:0.0f} GB free",
"unit": "GB",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 80x45 ncdu -x /mnt/hdd1/'"
},
"custom/nvidia": {
"exec": "nvidia-smi --query-gpu=utilization.gpu,memory.used,temperature.gpu --format=csv,nounits,noheader | sed 's/\\([0-9]\\+\\), \\([0-9]\\+\\), \\([0-9]\\+\\)/\\1% \\2MB \\3°C/g'",
"format": "󰓅 {}",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 120x45 nvtop'",
"interval": 1
},
"modules-right": [
"idle_inhibitor",
"cpu",
"custom/cputemp",
"memory",
"custom/nvidia",
"disk#root",
"disk#hdd1",
"backlight",
"pulseaudio",
"battery",
"clock",
"tray",
"custom/power"
]
}
@@ -0,0 +1,12 @@
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
exec "qtgreet; swaymsg exit"
bindsym Mod4+shift+e exec swaynag \
-t warning \
-m 'What do you want to do?' \
-b 'Poweroff' 'sudo poweroff' \
-b 'Reboot' 'sudo reboot'
output DP-1 resolution 5120x1440
# include /etc/sway/config.d/*
@@ -1,2 +0,0 @@
output DP-1 resolution 5120x1440
exec "regreet; swaymsg exit"
@@ -1,3 +0,0 @@
[Login]
HandlePowerKey=ignore
HandlePowerKeyLongPress=poweroff
@@ -1,5 +0,0 @@
[Sleep]
AllowSuspend=no
AllowHibernation=no
AllowHybridSleep=no
AllowSuspendThenHibernate=no
+49
View File
@@ -0,0 +1,49 @@
output DP-1 resolution 5120x1440
# switch to workspace
workspace $ws1 output DP-0
workspace $ws2 output DP-0
workspace $ws3 output DP-0
workspace $ws4 output DP-0
workspace $ws5 output DP-0
workspace $ws6 output DP-0
workspace $ws7 output DP-0
workspace $ws8 output DP-0
workspace $ws9 output DP-0
workspace $ws10 output DP-0
# switch to workspace
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
# Move focused container to workspace
bindsym $mod+Ctrl+1 move container to workspace $ws1
bindsym $mod+Ctrl+2 move container to workspace $ws2
bindsym $mod+Ctrl+3 move container to workspace $ws3
bindsym $mod+Ctrl+4 move container to workspace $ws4
bindsym $mod+Ctrl+5 move container to workspace $ws5
bindsym $mod+Ctrl+6 move container to workspace $ws6
bindsym $mod+Ctrl+7 move container to workspace $ws7
bindsym $mod+Ctrl+8 move container to workspace $ws8
bindsym $mod+Ctrl+9 move container to workspace $ws9
bindsym $mod+Ctrl+0 move container to workspace $ws10
# Move to workspace with focused container
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10
@@ -0,0 +1,34 @@
{
"disk#disk1": {
"path": "/",
"interval": 30,
"format": " / {specific_free:0.0f} of {specific_total:0.0f} GB free",
"unit": "GB",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 80x45 ncdu -x /'"
},
"disk#disk2": {
"path": "/mnt/hdd1",
"interval": 30,
"format": " /mnt/hdd1 {specific_free:0.0f} of {specific_total:0.0f} GB free",
"unit": "GB",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 80x45 ncdu -x /mnt/hdd1/'"
},
"network": {
"interface": "wlp5s0",
"interval": 5,
"format-wifi": "{icon}",
"format-ethernet": "󰈀",
"format-disconnected": "󰖪",
"format-disabled": "󰀝",
"format-icons": [ "󰤯", "󰤟", "󰤢", "󰤥", "󰤨" ],
"format-wifi": "{icon} {ipaddr} {essid} ({signalStrength}%)",
"format-ethernet": "{icon} {ipaddr}",
"format-disconnected": "", //An empty format will hide the module.
"tooltip-format": "{icon} {ifname}: {ipaddr}",
"tooltip-format-ethernet": "{icon} {ifname}: {ipaddr}",
"tooltip-format-wifi": "{icon} {ifname} ({essid}): {ipaddr} ({signalStrength}%)",
"tooltip-format-disconnected": "{icon} disconnected",
"tooltip-format-disabled": "{icon} disabled",
"on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 60x45 nmtui connect'"
}
}
-34
View File
@@ -1,34 +0,0 @@
# input
input type:touchpad {
pointer_accel 0.8
}
# output
output eDP-1 resolution 2736x1824 scale 1.6
# workspaces
bindsym {
# Switch to workspace
$mod+1 workspace $ws1
$mod+2 workspace $ws2
$mod+3 workspace $ws3
$mod+4 workspace $ws4
$mod+5 workspace $ws5
$mod+6 workspace $ws6
$mod+7 workspace $ws7
$mod+8 workspace $ws8
$mod+9 workspace $ws9
$mod+0 workspace $ws10
# Move focused container to workspace
$mod+Shift+1 move container to workspace $ws1
$mod+Shift+2 move container to workspace $ws2
$mod+Shift+3 move container to workspace $ws3
$mod+Shift+4 move container to workspace $ws4
$mod+Shift+5 move container to workspace $ws5
$mod+Shift+6 move container to workspace $ws6
$mod+Shift+7 move container to workspace $ws7
$mod+Shift+8 move container to workspace $ws8
$mod+Shift+9 move container to workspace $ws9
$mod+Shift+0 move container to workspace $ws10
}
@@ -1,15 +0,0 @@
{
"modules-right": [
"idle_inhibitor",
"cpu",
"custom/cputemp",
"memory",
"disk#root",
"backlight",
"pulseaudio",
"battery",
"clock",
"tray",
"custom/power"
]
}
-2
View File
@@ -1,2 +0,0 @@
output eDP-1 resolution 2736x1824 scale 1.6
exec "regreet; swaymsg exit"
@@ -1,8 +0,0 @@
[Login]
IdleAction=hibernate
IdleActionSec=10min
HandlePowerKey=hibernate
HandlePowerKeyLongPress=poweroff
HandleLidSwitch=hibernate
HandleLidSwitchExternalPower=hibernate
HandleLidSwitchDocked=ignore
@@ -1,12 +0,0 @@
#!/bin/sh
# This file (or a link to it) must be in /lib/systemd/system-sleep/iptsd.sh
logger -t "iptsd-hack" "\$0=$0, \$1=$1, \$2=$2"
if [ $1 == "pre" ]; then
logger -t "iptsd-hack" "stopping iptsd"
iptsd-systemd -- stop
else
logger -t "iptsd-hack" "starting iptsd"
iptsd-systemd -- start
fi
-35
View File
@@ -1,35 +0,0 @@
# input
input type:touchpad {
pointer_accel 0.4
}
bindswitch tablet:on busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true
# output
output eDP-1 resolution 2496x1664 scale 1.6
# workspaces
bindsym {
# Switch to workspace
$mod+1 workspace $ws1
$mod+2 workspace $ws2
$mod+3 workspace $ws3
$mod+4 workspace $ws4
$mod+5 workspace $ws5
$mod+6 workspace $ws6
$mod+7 workspace $ws7
$mod+8 workspace $ws8
$mod+9 workspace $ws9
$mod+0 workspace $ws10
# Move focused container to workspace
$mod+Shift+1 move container to workspace $ws1
$mod+Shift+2 move container to workspace $ws2
$mod+Shift+3 move container to workspace $ws3
$mod+Shift+4 move container to workspace $ws4
$mod+Shift+5 move container to workspace $ws5
$mod+Shift+6 move container to workspace $ws6
$mod+Shift+7 move container to workspace $ws7
$mod+Shift+8 move container to workspace $ws8
$mod+Shift+9 move container to workspace $ws9
$mod+Shift+0 move container to workspace $ws10
}
@@ -1,15 +0,0 @@
{
"modules-right": [
"idle_inhibitor",
"cpu",
"custom/cputemp",
"memory",
"disk#root",
"backlight",
"pulseaudio",
"battery",
"clock",
"tray",
"custom/power"
]
}
-2
View File
@@ -1,2 +0,0 @@
output eDP-1 resolution 2496x1664 scale 1.6
exec "regreet; swaymsg exit"
@@ -1,8 +0,0 @@
[Login]
IdleAction=hibernate
IdleActionSec=10min
HandlePowerKey=hibernate
HandlePowerKeyLongPress=poweroff
HandleLidSwitch=hibernate
HandleLidSwitchExternalPower=hibernate
HandleLidSwitchDocked=ignore
@@ -1,2 +0,0 @@
[Sleep]
HibernateDelaySec=30min
@@ -1,12 +0,0 @@
#!/bin/sh
# This file (or a link to it) must be in /lib/systemd/system-sleep/iptsd.sh
logger -t "iptsd-hack" "\$0=$0, \$1=$1, \$2=$2"
if [ $1 == "pre" ]; then
logger -t "iptsd-hack" "stopping iptsd"
iptsd-systemd -- stop
else
logger -t "iptsd-hack" "starting iptsd"
iptsd-systemd -- start
fi
-129
View File
@@ -1,129 +0,0 @@
#!/bin/sh
set -e
# general
sudo systemctl enable --now sshd.service
sudo systemctl enable --now fstrim.timer
yay -S plymouth tldextract go nodejs unzip exa topgrade
# display manager
yay -S greetd qtgreet
# sway
yay -S manjaro-sway-settings swaytools swaylock-effects pamac-tray-plasma unipicker mako ly wlsunset pcmanfm-qt wev gtklock idlehack sworkstyle foot
systemctl --now --user enable foot-server.socket
# systemctl --now --user enable foot-server
# systemctl --now --user enable idlehack
# systemctl --now --user enable sworkstyle
# systemctl --now --user enable pcmanfm
# nvidia
yay -S cuda nvidia-settings nvidia-docker
# python
yay -S python-pip pyenv ipython
# sound
yay -S manjaro-pipewire pavucontrol-qt
# video sharing
yay -S wireplumber xdg-desktop-portal xdg-desktop-portal-wlr
# theme
yay -S mint-themes mint-y-icons kvantum-theme-catppuccin-git catppuccin-gtk-theme-latte catppuccin-gtk-theme-mocha breeze-grub breeze-gtk breeze-icons
yay -S lxinput-gtk3 qt6ct pamac-gtk3
# terminal and shell
yay -S nushell oh-my-posh carapace-bin zoxide
chsh -s /usr/bin/nu
oh-my-posh init nu --config https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/refs/heads/main/themes/peru.omp.json
# code
yay -S neovim tmux tig diff-so-fancy ripgrep urlscan
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
# git
yay -S git-secret git-delta git-lfs lazygit
# formatters
yay -S python-black python-blackdoc python-pyment python-isort \
eslint_d eslint jq yamlfmt shfmt prettierd
# file sync
yay -S rclone dropbox
systemctl --user daemon-reload
rclone config # follow instructions and paste creds from https://console.cloud.google.com/apis/credentials
systemctl --now --user enable rclone-gdrive
systemctl --now --user enable dropbox
# docker incl non-root daemon
yay -S docker docker-compose dry-bin nvidia-docker docker-buildx
docker plugin install grafana/loki-docker-driver --alias loki --grant-all-permissions
sudo groupadd docker && sudo usermod -aG docker $USER
sudo systemctl enable --now containerd.service
sudo systemctl enable --now docker.service
# docker multi-platform build
yay -S qemu-user-static-binfmt qemu-user-static
# printer
yay -S manajaro-printer samsung-unified-driver-printer
# monitors
yay -S iftop btop nvtop lazyjournal isd bandwhich
# pdf
yay -S sioyek zathura zathura-pdf-mupdf zathura-djvu zathura-ps
# fonts
yay -S noto-fonts-emoji ttf-hack
# coolercontrol
yay -S coolercontrol
sudo systemctl enable --now coolercontrold.service
sudo systemctl edit coolercontrold.service # set log level to WARN
# video streaming
yay -S vlc protobuf yt-dlp
yay -S castnow
# cal+email+contacts
yay -S khard aerc khal vdirsyncer python-aiohttp-oauthlib pandoc
# latex
yay texlive-latexextra
# div applications
yay -S \
vesktop \
qimgv \
firefox \
font-manager \
i3status \
ncspot \
qalculate-qt \
qbittorrent \
quodlibet \
qutebrowser \
pass \
rofi \
steam \
teamviewer \
yazi \
eza
# firefox windowed fullscreen
# can be achieved by setting full-screen-api.ignore-widgets to true in about:config
wget -P ~/.local/share/fonts/ https://raw.githubusercontent.com/SUNET/static_sunet_se/refs/heads/master/fonts/Akkurat-Mono.otf
sudo mkdir -p /usr/share/backgrounds/ultrawide/
sudo wget -O rainbowsmoke.jpg -P /usr/share/backgrounds/ultrawide https://superultrawidewallpaper.com/wp-content/uploads/2022/02/rainbow-smoke-3840x1080-1860x523.jpg
# set up vdirsyncer with google calendar using
# https://vdirsyncer.pimutils.org/en/stable/config.html#google
# yazi plugins
ya pkg add yazi-rs/plugins:chmod
ya pkg add yazi-rs/plugins:git
ya pkg add yazi-rs/plugins:mount
ya pkg add yazi-rs/plugins:piper
ya pkg add yazi-rs/plugins:smart-enter
ya pkg add yazi-rs/plugins:smart-filter
ya pkg add yazi-rs/plugins:toggle-pane
+45
View File
@@ -0,0 +1,45 @@
[global]
width = (0, 600)
height = (0, 300)
origin = top-right
offset = (10, 50)
notification_limit = 200 # Maximum number of notification (0 means no limit)
frame_width = 1 # Defines width in pixels of frame around the notification window. Set to 0 to disable.
frame_color = "#788388"
separator_color = #263238
font = Noto Sans 10
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# Markup is allowed
format = "<b>%s</b> %p\n%b"
icon_position = off # Align icons left/right/off
icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/ # Paths to default icons.
sticky_history = no
history_length = 100 # Maximum amount of notifications kept in history
[urgency_low]
background = "#263238"
foreground = "#556064"
timeout = 20
default_icon = dialog-information
[urgency_normal]
background = "#263238"
foreground = "#F9FAF9"
timeout = 40
override_pause_level = 30
default_icon = dialog-information
[urgency_critical]
background = "#D62929"
foreground = "#F9FAF9"
timeout = 0
override_pause_level = 60
default_icon = dialog-warning
# vim: ft=cfg
+166 -342
View File
@@ -5,235 +5,144 @@
# "defopt",
# ]
# ///
# TODO
# fix btop colors
# pre-luks remote ssh
# add
# - sudo ufw allow 22/tcp comment "ssh"
# - sudo ufw default allow FORWARD
# - sudo ufw allow 2222
# - ... etc
# - sudo enable ufw
from difflib import unified_diff
from os.path import lexists
from pathlib import Path
from shutil import rmtree
from subprocess import run
from urllib.request import urlretrieve
HOSTNAME = open("/etc/hostname").read().strip()
HOME_TGT = Path("~").expanduser()
ROOT_TGT = Path("/")
DOTFILES = HOME_TGT / "dotfiles"
HOME_SRC = DOTFILES / "HOME"
ROOT_SRC = DOTFILES / "ROOT"
CFG_TGT = HOME_TGT / ".config"
CFG_SRC = DOTFILES / "CONFIG"
CUSTOM_SRC = DOTFILES / f"custom-{HOSTNAME}"
CFG = Path("~/.config").expanduser()
DOTFILES = Path("~/dotfiles").expanduser()
installmap = dict(
fonts=(
"noto-fonts-emoji",
"ttf-hack",
"font-manager",
),
zsh=(
"zsh",
"zsh-autosuggestions",
"zsh-syntax-highlighting",
"zsh-vi-mode",
"atuin",
"fzf",
"git-delta",
"starship",
"zoxide",
"bat",
),
fonts=("noto-fonts-emoji", "ttf-hack", "font-manager"),
nushell=("nushell", "oh-my-posh", "carapace-bin", "zoxide"),
tmux=("tmux", "urlscan"),
editors=(
"neovim",
"helix",
"ripgrep",
"npm", # required for nvim plugins
"go", # required for vim-hexokinase build
),
utils=("uv", "ncdu", "unzip", "jq", "bluetui"),
gittools=(
"tig",
"diff-so-fancy",
"git-secret",
"git-delta",
"git-lfs",
"lazygit",
"bat",
),
readers=(
"sioyek",
"zathura",
"zathura-pdf-mupdf",
"zathura-djvu",
"zathura-ps",
"typst",
"okular",
"calligra",
"libreoffice-fresh",
"xournalpp",
),
mediaviewers=(
# video
"vlc",
"mpv",
"protobuf",
"yt-dlp",
"v4l-utils",
# photos
"qimgv",
# music
"quodlibet",
"gst-plugins-good", # required deb
# audio
"pamixer",
"noisetorch",
),
filebrowsers=(
"yazi",
"ranger",
"pcmanfm",
"thunar",
"gparted",
"sshfs",
"file-roller",
"7zip", # explore zip files
"zoxide", # quick search
"eza", # pretty alternative to `ls`
"glow", # markdown renderer
),
nvim=("neovim", "ripgrep"),
utils=("uv", "bat", "ncdu", "unzip", "jq"),
gittools=("tig", "diff-so-fancy", "git-secret", "git-delta", "git-lfs", "lazygit"),
pdftools=("sioyek", "zathura", "zathura-pdf-mupdf", "zathura-djvu", "zathura-ps"),
media=("vlc", "mpv", "protobuf", "yt-dlp", "quodlibet", "qimgv"),
filebrowsers=("pcmanfm", "yazi", "zoxide", "eza"),
netbrowsers=(
"qutebrowser",
"firefox",
"google-chrome",
"microsoft-edge-stable-bin",
"w3m",
"python-adblock", # for qutebrowser ad blocker
"python-adblock",
"python-tldextract",
"bitwarden-cli", # for qutebrowser autofill
),
chat=("discordo-git", "gurk"),
emailcalrss=(
"vdirsyncer", # sync calendar+contacts
"khard", # contacts
"khal", # calendar
"aerc", # email
"pandoc", # md2html emails
"pass", # password manager
"w3m", # terminal browser
"newsboat", # rss reader
"vdirsyncer", # sync calendar+contacts
"pandoc", # md2html for aerc
"pass", # password manager for aerc and newsboat
"w3m", # terminal browser for aerc and newsboat
"urlscan", # url finder for newsboat
"python-aiohttp-oauthlib", # for google vdirsyncer
),
monitors=(
"htop", # hardware
"btop", # hardware
"nvtop", # gpu
"lazyjournal", # journald
"isd", # systemd
"bandwhich", # network
"sysstat",
),
apps=("keepassxc", "bitwarden", "qalculate-gtk", "vesktop"),
sway=(
# visuals
"wlsunset", # eye saver
"wdisplays", # ui for display settings
apps=("bitwarden", "qalculate-gtk", "vesktop"),
swaytools=(
"flashfocus", # quick flash when changing app in focus
# clipboard
"wl-clip-persist", # keep clipboard after close
# div
"noisetorch", # noise cancellation
"unipicker", # unicode symbol selector
"wl-clip-persist", # keep clipboard after close
"wlsunset", # eye saver
"blueman", # bluetooth
"wdisplays", # ui for display settings
"wev", # debugging of ui
"gtklock", # lock screen
),
remotedata=("rclone", "dropbox", "minio-client"),
screensharing=("wireplumber",),
nvidia=("cuda", "nvidia-settings"),
coolercontrol=("coolercontrol",),
docker=(
"docker",
"dry-bin", # docker tui
screensharing=(
"wireplumber",
"xdg-desktop-portal",
"xdg-desktop-portal-wlr",
),
k8s=(
optional_nvidia=("cuda", "nvidia-settings"),
optional_coolercontrol=("coolercontrol",),
optional_containers=(
"docker",
"docker-compose",
"docker-buildx", # advanced build
"qemu-user-static-binfmt", # build arm64
"qemu-user-static", # build arm64
"dry-bin", # docker tui
"k9s", # kubernetes tui
"wireguard-tools", # includes wg-quick
"sops", # secret mgmt
"flux-bin",
"open-iscsi", # required by longhorn
"kubectl-cnpg",
),
optional_nvidia_containers=("nvidia-docker",),
)
def compare(src: Path, tgt: Path) -> str:
def compare_files(a: Path, b: Path) -> str:
return "".join(
unified_diff(open(a).readlines(), open(b).readlines(), str(a), str(b))
)
def helper_symlink_contents(
source_folder: str | Path, target_folder: str | Path, overwrite: bool
) -> None:
source_folder = Path(source_folder).expanduser()
target_folder = Path(target_folder).expanduser()
target_folder.mkdir(exist_ok=True)
for folder in [source_folder, target_folder]:
assert folder.expanduser().is_dir()
for src in source_folder.iterdir():
tgt = target_folder / src.name
if tgt.exists():
if src.is_dir():
diff = ""
for subsrc in src.glob("**/*"):
subpath = subsrc.relative_to(src) # NOTE: dirty code!
subtgt = tgt / subpath
if subtgt.exists() and lexists(subtgt):
diff += compare(subsrc, subtgt)
return diff
else:
srcdata = open(src).readlines() if src.exists() else []
tgtdata = open(tgt).readlines() if tgt.exists() else []
return "".join(unified_diff(srcdata, tgtdata, str(src), str(tgt)))
def helper_maybe_copy(
src_folder: Path, tgt_folder: Path, sub: str, overwrite: bool, symlink: bool
) -> bool:
src = src_folder.expanduser() / sub
tgt = tgt_folder.expanduser() / sub
assert src.exists()
tgt.parent.mkdir(exist_ok=True)
if lexists(tgt):
if not overwrite:
if diff := compare(src, tgt):
print("DIFF:\n" + diff)
if input("overwrite? (y/n) ") == "n":
return False
if tgt.is_file() or tgt.is_symlink():
tgt.unlink()
else:
rmtree(str(tgt))
if symlink:
if overwrite:
tgt.rmdir()
tgt.symlink_to(src)
else:
run(["cp", str(src), str(tgt)])
diff = ""
for subsrc in src.glob("**/*"):
subpath = subsrc.relative_to(source_folder)
subtgt = target_folder / subpath
if subtgt.exists():
diff += compare_files(subsrc, subtgt)
if diff:
print("DIFF:\n" + diff)
if input("overwrite? (y/n) ") == "y":
tgt.rmdir()
tgt.symlink_to(src)
else:
if overwrite:
tgt.unlink()
tgt.symlink_to(src)
else:
tgt = target_folder / src.name
diff = compare_files(src, tgt)
if diff:
print("DIFF:\n" + diff)
if input("overwrite? (y/n) ") == "y":
tgt.unlink()
tgt.symlink_to(src)
def helper_maybe_continue(path: Path, overwrite: bool) -> bool:
path = path.expanduser()
match path.exists(), overwrite:
case False, _:
return True
def helper_clone_foldercontents(
src_parent: Path,
tgt_parent: Path,
folder: str,
overwrite: bool,
symlink: bool = True,
) -> None:
src_folder = src_parent.expanduser() / folder
tgt_folder = tgt_parent.expanduser() / folder
tgt_folder.mkdir(exist_ok=True)
assert src_folder.is_dir()
assert tgt_folder.is_dir() or tgt_folder.is_symlink()
for src in src_folder.iterdir():
name = src.name
if name.endswith(".secret"): # git-secret item
continue
helper_maybe_copy(src_folder, tgt_folder, name, overwrite, symlink=symlink)
case True, True:
path.unlink()
return True
case True, False:
return False
case err:
raise ValueError(err)
def helper_check_if_installed(pkg: str) -> bool:
return run(["pacman", "-Q", pkg], capture_output=True).returncode == 0
return run(["yay", "-Qs", pkg], capture_output=True).returncode == 0
def helper_uninstall(*pkgs: str) -> None:
@@ -248,202 +157,129 @@ def helper_install(*pkgs: str, reinstall: bool) -> None:
def install_fonts(reinstall: bool) -> None:
tgt = Path("~/.local/share/fonts/Akkurat-Mono.otf").expanduser()
tgt.parent.mkdir(exist_ok=True)
urlretrieve(
"https://raw.githubusercontent.com/SUNET/static_sunet_se/refs/heads/master/fonts/Akkurat-Mono.otf",
tgt,
Path("~/.local/share/fonts/Akkurat-Mono.otf").expanduser(),
)
helper_install(*installmap["fonts"], reinstall=reinstall)
def install_zsh(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["zsh"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "zsh", overwrite)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "atuin", overwrite)
run("chsh -s /usr/bin/zsh".split())
helper_maybe_copy(CFG_SRC, CFG_TGT, "starship.toml", overwrite, symlink=True)
helper_maybe_copy(HOME_SRC, HOME_TGT, ".zshenv", overwrite, symlink=True)
def install_nushell(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["nushell"], reinstall=reinstall)
helper_symlink_contents(DOTFILES / "nushell", CFG / "nushell", overwrite)
run("sudo chsh -s /usr/bin/nu".split())
url = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/refs/heads/main/themes/peru.omp.json"
run(["oh-my-posh", "init", "nu", "--config", url])
def install_tmux(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["tmux"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "tmux", overwrite)
tpmpath = CFG_TGT / "tmux/plugins/tpm"
if overwrite or not lexists(tpmpath):
if lexists(tpmpath):
if tpmpath.is_symlink():
tpmpath.unlink()
else:
rmtree(str(tpmpath))
helper_symlink_contents(DOTFILES / "tmux", CFG / "tmux", overwrite)
tpmpath = CFG / "tmux/plugins/tpm"
if overwrite or not tpmpath.exists():
if tpmpath.exists():
tpmpath.rmdir()
run(["git", "clone", "https://github.com/tmux-plugins/tpm", tpmpath])
def install_editors(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["editors"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "nvim", overwrite)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "helix", overwrite)
def install_nvim(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["nvim"], reinstall=reinstall)
helper_symlink_contents(DOTFILES / "nvim", CFG / "nvim", overwrite)
def install_gittools(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["gittools"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "tig", overwrite)
helper_maybe_copy(HOME_SRC, HOME_TGT, ".gitconfig", overwrite, symlink=True)
helper_symlink_contents(DOTFILES / "tig", CFG / "tig", overwrite)
gitcfgpath = Path("~/.gitconfig").expanduser()
if overwrite or not gitcfgpath.exists():
if gitcfgpath.exists():
gitcfgpath.unlink()
gitcfgpath.expanduser().symlink_to(DOTFILES / "HOME/.gitconfig")
def install_readers(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["readers"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "sioyek", overwrite)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "zathura", overwrite)
def install_mediaviewers(reinstall: bool) -> None:
helper_install(*installmap["mediaviewers"], reinstall=reinstall)
def install_pdftools(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["pdftools"], reinstall=reinstall)
helper_symlink_contents(DOTFILES / "sioyek", CFG / "sioyek", overwrite)
helper_symlink_contents(DOTFILES / "zathura", CFG / "zathura", overwrite)
def install_filebrowsers(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["filebrowsers"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "ranger", overwrite)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "yazi", overwrite)
helper_symlink_contents(DOTFILES / "yazi", CFG / "yazi", overwrite)
for plugin in [
"yazi-rs/plugins:chmod",
"yazi-rs/plugins:git",
"yazi-rs/plugins:mount",
"yazi-rs/plugins:piper",
"yazi-rs/plugins:smart-enter",
"yazi-rs/plugins:smart-filter",
"yazi-rs/plugins:toggle-pane",
"boydaihungst/file-extra-metadata",
"chmod",
"git",
"mount",
"piper",
"smart-enter",
"smart-filter",
"toggle-pane",
]:
run(f"ya pkg add {plugin}".split())
tgt = ".local/share/applications/userapp-file-roller.desktop"
helper_maybe_copy(HOME_SRC, HOME_TGT, tgt, overwrite, symlink=True)
def install_netbrowsers(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["netbrowsers"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "qutebrowser", overwrite)
helper_maybe_copy(HOME_SRC, HOME_TGT, ".w3m/keymap", overwrite, symlink=True)
(HOME_TGT / "Downloads").mkdir(exist_ok=True)
def install_chat(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["chat"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "discordo", overwrite)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "gurk", overwrite)
def install_monitors(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["monitors"], reinstall=reinstall)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "btop", overwrite)
run(f"ya pkg add yazi-rs/plugins:{plugin}".split())
def install_emailcalrss(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["emailcalrss"], reinstall=reinstall)
for tgt in ["vdirsyncer", "khard", "khal", "aerc", "newsboat"]:
helper_clone_foldercontents(CFG_SRC, CFG_TGT, tgt, overwrite)
tgt = ".local/share/applications/userapp-khalimport.desktop"
helper_maybe_copy(HOME_SRC, HOME_TGT, tgt, overwrite, symlink=True)
run("systemctl enable --user --now vdirsyncer.timer".split())
run(f"chmod 600 {CFG_TGT / 'aerc/accounts.conf'}".split())
(HOME_TGT / ".cache/newsboat").mkdir(exist_ok=True)
(HOME_TGT / "Calendars").mkdir(exist_ok=True)
(HOME_TGT / "Contacts").mkdir(exist_ok=True)
helper_symlink_contents(DOTFILES / tgt, CFG / tgt, overwrite)
run(f"chmod 600 {CFG / 'aerc/accounts.conf'}".split())
def install_sway(overwrite: bool, reinstall: bool) -> None:
# sudo
helper_uninstall("autotiling", "cliphist")
helper_install(*installmap["sway"], reinstall=reinstall)
def install_swaytools(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["swaytools"], reinstall=reinstall)
sub = "sway/config.d"
helper_symlink_contents(DOTFILES / sub, CFG / sub, overwrite)
run("sudo systemctl enable --now bluetooth".split())
for sub in [
"etc/systemd/logind.conf.d/suspend.conf",
"etc/systemd/sleep.conf.d/hibernate.conf",
"etc/greetd/sway.cfg",
"lib/systemd/system-sleep/iptsd.sh",
]:
src = CUSTOM_SRC / "ROOT" / sub
if not src.exists():
continue
tgt = ROOT_TGT / sub
run(["sudo", "mkdir", "-p", str(tgt.parent)])
if tgt.exists():
if diff := compare(src, tgt):
print("DIFF:\n" + diff)
if input("overwrite? (y/n) ") == "n":
continue
run(["sudo", "rm", str(tgt)])
run(["sudo", "cp", str(src), str(tgt)])
run(["sudo", "cp", str(DOTFILES / "ROOT" / sub), str(Path("/") / sub)])
run("sudo systemctl enable --now bluetooth".split())
# user
run("systemctl --user enable --now flashfocus".split())
if (tgt := CFG_TGT / "waybar/config").exists():
tgt.unlink()
for sub in ["sway", "waybar", "gtk-3.0", "mako", "fuzzel", "nwg-drawer"]:
helper_clone_foldercontents(CFG_SRC, CFG_TGT, sub, overwrite)
helper_clone_foldercontents(CUSTOM_SRC / "CONFIG", CFG_TGT, "sway", overwrite)
helper_clone_foldercontents(CUSTOM_SRC / "CONFIG", CFG_TGT, "waybar", overwrite)
helper_maybe_copy(CFG_SRC, CFG_TGT, "mimeapps.list", overwrite, symlink=True)
helper_clone_foldercontents(
HOME_SRC,
HOME_TGT,
".local/share/applications",
overwrite,
)
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "foot", overwrite)
def configure_pytools(overwrite: bool) -> None:
for sub in [".ipython/profile_default", ".jupyter"]:
tgt = HOME_TGT / sub
run(["mkdir", "-p", str(tgt)])
helper_clone_foldercontents(HOME_SRC, HOME_TGT, sub, overwrite)
def install_k8sreqs(overwrite: bool, reinstall: bool) -> None:
# sudo
helper_install(*installmap["k8s"], reinstall=reinstall)
run("sudo systemctl enable --now docker.service".split())
sub = "etc/modules-load.d/br_netfilter.conf"
run(["sudo", "cp", str(ROOT_SRC / sub), str(ROOT_TGT / sub)])
run("sudo systemctl enable --now iscsid".split())
# user
helper_clone_foldercontents(CFG_SRC, CFG_TGT, "k9s", overwrite)
helper_symlink_contents(DOTFILES / "HOME" / sub, Path("~") / sub, overwrite)
def installer(
*,
overwrite: bool = False,
reinstall: bool = False,
with_gpu: bool = False,
with_containers: bool = False,
with_coolercontrol: bool = False,
) -> None:
if helper_check_if_installed("cliphist"):
helper_uninstall("cliphist")
print("removed cliphist")
install_fonts(reinstall)
print("installed fonts")
install_zsh(overwrite, reinstall)
print("installed zsh")
install_nushell(overwrite, reinstall)
print("installed nushell")
install_tmux(overwrite, reinstall)
print("installed tmux")
install_editors(overwrite, reinstall)
print("installed editors")
install_nvim(overwrite, reinstall)
print("installed nvim")
helper_install(*installmap["utils"], reinstall=reinstall)
print("installed utils")
install_gittools(overwrite, reinstall)
print("installed gittools")
install_readers(overwrite, reinstall)
print("installed readers")
install_mediaviewers(reinstall)
print("installed mediaviewers")
install_pdftools(overwrite, reinstall)
print("installed pdftools")
helper_install(*installmap["media"], reinstall=reinstall)
print("installed media")
install_filebrowsers(overwrite, reinstall)
print("installed filebrowsers")
install_netbrowsers(overwrite, reinstall)
helper_install(*installmap["netbrowsers"], reinstall=reinstall)
print("installed netbrowsers")
install_emailcalrss(overwrite, reinstall)
print("installed emailcalrss")
install_chat(overwrite, reinstall)
print("installed chat")
install_monitors(overwrite, reinstall)
helper_install(*installmap["monitors"], reinstall=reinstall)
print("installed monitors")
helper_install(*installmap["apps"], reinstall=reinstall)
print("installed apps")
install_sway(overwrite, reinstall)
install_swaytools(overwrite, reinstall)
print("installed sway")
helper_install(*installmap["remotedata"], reinstall=reinstall)
print("installed remotedata")
@@ -451,46 +287,34 @@ def installer(
print("installed screensharing")
configure_pytools(overwrite=overwrite)
print("configured python tools")
if HOSTNAME in ["mothership", "droneship"]:
helper_install(*installmap["nvidia"], reinstall=reinstall)
if with_gpu:
helper_install(*installmap["optional_nvidia"], reinstall=reinstall)
print("installed nvidia")
if HOSTNAME in ["mothership", "droneship"]:
install_k8sreqs(overwrite, reinstall)
print("installed k8s requirements")
if HOSTNAME in ["mothership", "droneship"]:
helper_install(*installmap["coolercontrol"], reinstall=reinstall)
if with_containers:
helper_install(*installmap["optional_containers"], reinstall=reinstall)
run("sudo systemctl enable --now docker.service".split())
print("installed containers")
if with_gpu and with_containers:
helper_install(*installmap["optional_nvidia_containers"], reinstall=reinstall)
print("installed nvidia containers")
if with_coolercontrol:
helper_install(*installmap["optional_coolercontrol"], reinstall=reinstall)
run("sudo systemctl enable --now coolercontrold.service".split())
print("installed coolercontrol")
if HOSTNAME in ["mothership"]:
helper_install(*installmap["docker"], reinstall=reinstall)
helper_clone_foldercontents(
CFG_SRC, CFG_TGT, "homeassistant", overwrite, symlink=False
)
print("installed docker + home assistant")
print("""
MANUAL NEXT STEPS:
# vdirsyncer
- set up with google calendar using
set up vdirsyncer with google calendar using
https://vdirsyncer.pimutils.org/en/stable/config.html#google
- run `vdirsyncer discover` then `vdiscover sync`
# firefox
- allow windowed fullscreen by setting full-screen-api.ignore-widgets to
true in about:config
allow firefox windowed fullscreen by setting full-screen-api.ignore-widgets
to true in about:config
# coolercontrol
- set coolercontrold log level to WARN: `sudo systemctl edit
coolercontrold.service`
set coolercontrold log level to WARN:
`sudo systemctl edit coolercontrold.service`
# k8s
- configure `/etc/hosts`
- run `hjarl-system/k8s.py` scripts
# docker / home assistant
- docker with non-root daemon
docker with non-root daemon
`sudo groupadd docker && sudo usermod -aG docker $USER`
- run home assistant and music assistant scripts to start docker services
""")
+23
View File
@@ -0,0 +1,23 @@
# graphics
MOZ_ENABLE_WAYLAND=1
QT_QPA_PLATFORM=wayland-egl
CLUTTER_BACKEND=wayland
ECORE_EVAS_ENGINE=wayland-egl
ELM_ENGINE=wayland_egl
SDL_VIDEODRIVER=wayland
_JAVA_AWT_WM_NONREPARENTING=1
NO_AT_BRIDGE=1
# QT theme
QT_QPA_PLATFORMTHEME=qt5ct
# defaults
SYSTEMD_EDITOR=/usr/bin/nvim
EDITOR=/usr/bin/nvim
VISUAL=/usr/bin/nvim
TERMINAL=/usr/bin/footclient
PAGER="bat --style=header,rule,snip"
BROWSER=/usr/bin/qutebrowser
# sioyek fix
# QT_QPA_PLATFORM=xcb
+7
View File
@@ -0,0 +1,7 @@
if status is-interactive
pyenv init - | source
set -x PAGER "nvimpager"
set -Ua fish_user_paths /home/hjalmarlucius/.local/bin/
set -x CUDA_HOME /opt/cuda
set -x LD_LIBRARY_PATH $LD_LIBRARY_PATH $CUDA_HOME/lib64
end
@@ -0,0 +1,3 @@
function ll --description 'List contents of directory using long format'
exa --icons -l $argv
end
+3
View File
@@ -0,0 +1,3 @@
function ll --description 'List contents of directory using long format'
exa --icons -l -g $argv
end
+57
View File
@@ -0,0 +1,57 @@
[main]
font=monospace:size=7,JetBrainsMono Nerd Font:size=7
dpi-aware=yes
[environment]
SYSTEMD_EDITOR=/usr/bin/nvim
EDITOR=/usr/bin/nvim
VISUAL=/usr/bin/nvim
PAGER="bat --style=header,rule,snip"
BROWSER=/usr/bin/qutebrowser
[scrollback]
lines=100000
[key-bindings]
search-start=Control+Shift+F
show-urls-copy=Control+Shift+O
[search-bindings]
find-prev=Control+p
find-next=Control+n
[colors]
alpha=0.9
foreground=cdd6f4
background=1e1e2e
cursor=11111b f5e0dc
regular0=45475a
regular1=f38ba8
regular2=a6e3a1
regular3=f9e2af
regular4=89b4fa
regular5=f5c2e7
regular6=94e2d5
regular7=bac2de
bright0=585b70
bright1=f38ba8
bright2=a6e3a1
bright3=f9e2af
bright4=89b4fa
bright5=f5c2e7
bright6=94e2d5
bright7=a6adc8
16=fab387
17=f5e0dc
selection-foreground=cdd6f4
selection-background=414356
search-box-no-match=11111b f38ba8
search-box-match=cdd6f4 313244
jump-labels=11111b fab387
urls=89b4fa
Binary file not shown.
+269
View File
@@ -0,0 +1,269 @@
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
http:
use_x_forwarded_for: true
trusted_proxies: 10.2.0.0/16
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
google_assistant:
project_id: homeassistant-mothership-1123
service_account: !include SERVICE_ACCOUNT.JSON
report_state: true
sensor:
- platform: nordpool
region: "NO1"
currency: "NOK"
low_price_cutoff: 0.95
# - platform: template
# sensors:
# # NORDPOOL PRICES
# nordpool_today_hr_00_01:
# friendly_name: "Today hour 0"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[0] }}"
# nordpool_today_hr_01_02:
# friendly_name: "Today hour 1"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[1] }}"
# nordpool_today_hr_02_03:
# friendly_name: "Today hour 2"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[2] }}"
# nordpool_today_hr_03_04:
# friendly_name: "Today hour 3"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[3] }}"
# nordpool_today_hr_04_05:
# friendly_name: "Today hour 4"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[4] }}"
# nordpool_today_hr_05_06:
# friendly_name: "Today hour 5"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[5] }}"
# nordpool_today_hr_06_07:
# friendly_name: "Today hour 6"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[6] }}"
# nordpool_today_hr_07_08:
# friendly_name: "Today hour 7"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[7] }}"
# nordpool_today_hr_08_09:
# friendly_name: "Today hour 8"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[8] }}"
# nordpool_today_hr_09_10:
# friendly_name: "Today hour 9"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[9] }}"
# nordpool_today_hr_10_11:
# friendly_name: "Today hour 10"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[10] }}"
# nordpool_today_hr_11_12:
# friendly_name: "Today hour 11"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[11] }}"
# nordpool_today_hr_12_13:
# friendly_name: "Today hour 12"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[12] }}"
# nordpool_today_hr_13_14:
# friendly_name: "Today hour 13"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[13] }}"
# nordpool_today_hr_14_15:
# friendly_name: "Today hour 14"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[14] }}"
# nordpool_today_hr_15_16:
# friendly_name: "Today hour 15"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[15] }}"
# nordpool_today_hr_16_17:
# friendly_name: "Today hour 16"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[16] }}"
# nordpool_today_hr_17_18:
# friendly_name: "Today hour 17"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[17] }}"
# nordpool_today_hr_18_19:
# friendly_name: "Today hour 18"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[18] }}"
# nordpool_today_hr_19_20:
# friendly_name: "Today hour 19"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[19] }}"
# nordpool_today_hr_20_21:
# friendly_name: "Today hour 20"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[20] }}"
# nordpool_today_hr_21_22:
# friendly_name: "Today hour 21"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[21] }}"
# nordpool_today_hr_22_23:
# friendly_name: "Today hour 22"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[22] }}"
# nordpool_today_hr_23_24:
# friendly_name: "Today hour 23"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.today[23] }}"
# nordpool_tomorrow_hr_00_01:
# friendly_name: "Tomorrow hour 0"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[0] }}"
# nordpool_tomorrow_hr_01_02:
# friendly_name: "Tomorrow hour 1"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[1] }}"
# nordpool_tomorrow_hr_02_03:
# friendly_name: "Tomorrow hour 2"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[2] }}"
# nordpool_tomorrow_hr_03_04:
# friendly_name: "Tomorrow hour 3"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[3] }}"
# nordpool_tomorrow_hr_04_05:
# friendly_name: "Tomorrow hour 4"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[4] }}"
# nordpool_tomorrow_hr_05_06:
# friendly_name: "Tomorrow hour 5"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[5] }}"
# nordpool_tomorrow_hr_06_07:
# friendly_name: "Tomorrow hour 6"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[6] }}"
# nordpool_tomorrow_hr_07_08:
# friendly_name: "Tomorrow hour 7"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[7] }}"
# nordpool_tomorrow_hr_08_09:
# friendly_name: "Tomorrow hour 8"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[8] }}"
# nordpool_tomorrow_hr_09_10:
# friendly_name: "Tomorrow hour 9"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[9] }}"
# nordpool_tomorrow_hr_10_11:
# friendly_name: "Tomorrow hour 10"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[10] }}"
# nordpool_tomorrow_hr_11_12:
# friendly_name: "Tomorrow hour 11"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[11] }}"
# nordpool_tomorrow_hr_12_13:
# friendly_name: "Tomorrow hour 12"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[12] }}"
# nordpool_tomorrow_hr_13_14:
# friendly_name: "Tomorrow hour 13"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[13] }}"
# nordpool_tomorrow_hr_14_15:
# friendly_name: "Tomorrow hour 14"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[14] }}"
# nordpool_tomorrow_hr_15_16:
# friendly_name: "Tomorrow hour 15"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[15] }}"
# nordpool_tomorrow_hr_16_17:
# friendly_name: "Tomorrow hour 16"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[16] }}"
# nordpool_tomorrow_hr_17_18:
# friendly_name: "Tomorrow hour 17"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[17] }}"
# nordpool_tomorrow_hr_18_19:
# friendly_name: "Tomorrow hour 18"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[18] }}"
# nordpool_tomorrow_hr_19_20:
# friendly_name: "Tomorrow hour 19"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[19] }}"
# nordpool_tomorrow_hr_20_21:
# friendly_name: "Tomorrow hour 20"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[20] }}"
# nordpool_tomorrow_hr_21_22:
# friendly_name: "Tomorrow hour 21"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[21] }}"
# nordpool_tomorrow_hr_22_23:
# friendly_name: "Tomorrow hour 22"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[22] }}"
# nordpool_tomorrow_hr_23_24:
# friendly_name: "Tomorrow hour 23"
# icon_template: mdi:cash
# unit_of_measurement: "øre"
# value_template: "{{ states.sensor.nordpool_kwh_oslo_nok_3_10_025.attributes.tomorrow[23] }}"
+22
View File
@@ -0,0 +1,22 @@
# General Options.
[options]
background = 2d2d2d
overlay_font = Iosevka:18
overlay_background_color = 282828
# Keybindings.
[binds]
h = prev 1
j = zoom 5
k = zoom -5
l = next 1
<Shift+H> = pan -100 0
<Shift+J> = pan 0 100
<Shift+K> = pan 0 -100
<Shift+L> = pan 100 0
<Ctrl+h> = rotate by -90
<Ctrl+j> = flip vertical
<Ctrl+k> = flip horizontal
<Ctrl+l> = rotate by 90

Some files were not shown because too many files have changed in this diff Show More