Compare commits
1 Commits
98d8281d28
..
endos
| Author | SHA1 | Date | |
|---|---|---|---|
| 8512162cd0 |
+1
-3
@@ -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 +1 @@
|
||||
CONFIG/homeassistant/SERVICE_ACCOUNT.JSON:5a3eabcbc53278f7713423b0ea20d0558f6334f8a1f6aed2a2e4cfb2ca9c93ab
|
||||
CONFIG/vdirsyncer/config:73434db7346e1d070c38c8099c0c8ec99925f4d89ba3e558875fa2a179f41a25
|
||||
CONFIG/rclone/rclone.conf:85e963d7e0487bf4c10c63a135cc958259eb4156276661276fccb4d9595e79bd
|
||||
homeassistant/SERVICE_ACCOUNT.JSON:5a3eabcbc53278f7713423b0ea20d0558f6334f8a1f6aed2a2e4cfb2ca9c93ab
|
||||
|
||||
@@ -1,284 +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 = 20
|
||||
|
||||
## 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" ]
|
||||
|
||||
[ui]
|
||||
columns = ["datetime", "duration", "host", "command"]
|
||||
@@ -1,272 +0,0 @@
|
||||
#? Config file for btop v.1.4.6
|
||||
|
||||
#* 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
|
||||
|
||||
#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
|
||||
terminal_sync = 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
|
||||
|
||||
#* Should cpu and memory usage display be preserved for dead processes when paused.
|
||||
keep_dead_proc_usage = 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
|
||||
|
||||
#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average".
|
||||
freq_mode = "first"
|
||||
|
||||
#* 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 "~/.local/state/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"
|
||||
|
||||
#* Automatically save current settings to config file on exit.
|
||||
save_config_on_exit = true
|
||||
|
||||
#* 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
|
||||
|
||||
#* Set which GPU vendors to show. Available values are "nvidia amd intel"
|
||||
shown_gpus = "nvidia amd intel"
|
||||
|
||||
#* 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 = ""
|
||||
@@ -1,144 +0,0 @@
|
||||
# Whether to enable mouse or not.
|
||||
mouse = true
|
||||
# The program to open when the `keys.message_input.editor` keymap is pressed. Set the value to `"default"` to use `$EDITOR`.
|
||||
editor = "default"
|
||||
|
||||
# "default" (unknown), "online", "dnd", "idle", "invisible", "offline"
|
||||
status = "default"
|
||||
|
||||
# Whether to parse and render markdown in messages or not.
|
||||
markdown = true
|
||||
hide_blocked_users = true
|
||||
show_attachment_links = true
|
||||
|
||||
# Use autocomplete_limit = 0 to disable autocompleting mentions
|
||||
# Note: tab completion will still work, but it won't show any list.
|
||||
autocomplete_limit = 20
|
||||
|
||||
# The number of messages to fetch when a text-based channel is selected from guilds tree. The minimum and maximum value is 0 and 100, respectively.
|
||||
messages_limit = 50
|
||||
|
||||
[timestamps]
|
||||
enabled = true
|
||||
# https://pkg.go.dev/time#Layout
|
||||
format = "01-02 15:04:05 (Z07:00)"
|
||||
|
||||
[notifications]
|
||||
enabled = true
|
||||
# The duration of the sound. Set the value to `0` to use default duration. This is only supported on Unix and Windows.
|
||||
duration = 0
|
||||
[notifications.sound]
|
||||
enabled = true
|
||||
only_on_ping = true
|
||||
|
||||
# Global shortcuts
|
||||
# Esc: Reset message selection or close the channel selection popup.
|
||||
[keys]
|
||||
focus_guilds_tree = "Ctrl+G"
|
||||
focus_messages_list = "Ctrl+T"
|
||||
focus_message_input = "Ctrl+Space"
|
||||
# Cycle focus between the widgets.
|
||||
focus_previous = "Ctrl+H"
|
||||
focus_next = "Ctrl+L"
|
||||
# Hide/show the guilds tree.
|
||||
toggle_guilds_tree = "Ctrl+B"
|
||||
quit = "Ctrl+C"
|
||||
# Log out and remove the authentication token from keyring.
|
||||
# Requires re-login upon restart.
|
||||
logout = "Ctrl+D"
|
||||
|
||||
# Only while focusing on the guilds tree
|
||||
[keys.guilds_tree]
|
||||
select_previous = "Rune[k]"
|
||||
select_next = "Rune[j]"
|
||||
select_first = "Rune[g]"
|
||||
select_last = "Rune[G]"
|
||||
# Select the currently highlighted text-based channel or expand a guild or channel.
|
||||
select_current = "Enter"
|
||||
yank_id = "Rune[i]"
|
||||
collapse_parent_node = "Rune[-]"
|
||||
move_to_parent_node = "Rune[p]"
|
||||
|
||||
# Only while focusing on sent messages
|
||||
[keys.messages_list]
|
||||
select_previous = "Rune[k]"
|
||||
select_next = "Rune[j]"
|
||||
select_first = "Rune[g]"
|
||||
select_last = "Rune[G]"
|
||||
# Select the message reference (reply) of the selected channel.
|
||||
select_reply = "Rune[s]"
|
||||
# Reply to the selected message.
|
||||
reply = "Rune[r]"
|
||||
# Reply (with mention) to the selected message.
|
||||
reply_mention = "Rune[R]"
|
||||
cancel = "Esc"
|
||||
edit = "Rune[e]"
|
||||
delete = "Rune[D]"
|
||||
delete_confirm = "Rune[d]"
|
||||
# Open the selected message's attachments or hyperlinks in the message
|
||||
# using the default browser application.
|
||||
open = "Rune[o]"
|
||||
# Yank (copy) the selected message's content/url/id.
|
||||
yank_content = "Rune[y]"
|
||||
yank_url = "Rune[u]"
|
||||
yank_id = "Rune[i]"
|
||||
|
||||
# Only while typing a message
|
||||
# Alt+Enter: Insert a new line to the current text.
|
||||
[keys.message_input]
|
||||
# paste from clipboard (supports both text and images)
|
||||
paste = "Ctrl+V"
|
||||
send = "Enter"
|
||||
# Remove existing text or cancel reply.
|
||||
cancel = "Esc"
|
||||
# Complete usernames when mentioning
|
||||
tab_complete = "Tab"
|
||||
|
||||
open_editor = "Ctrl+E"
|
||||
open_file_picker = "Ctrl+\\"
|
||||
|
||||
[keys.mentions_list]
|
||||
up = "Ctrl+P"
|
||||
down = "Ctrl+N"
|
||||
|
||||
# style = { foreground = "", background = "", attributes = "" or [""] }
|
||||
[theme.title]
|
||||
alignment = "left" # `"left"`, `"center"`, or `"right"`.
|
||||
|
||||
normal_style = { attributes = "dim" }
|
||||
active_style = { foreground = "green", attributes = "bold" }
|
||||
|
||||
[theme.border]
|
||||
enabled = true
|
||||
padding = [0, 0, 1, 1] # [top, bottom, left, right]
|
||||
|
||||
normal_style = { attributes = "dim" }
|
||||
active_style = { foreground = "green", attributes = "bold" }
|
||||
|
||||
# `"hidden"`, `"plain"`, `"round"`, `"thick"`, or `"double"`.
|
||||
normal_set = "round"
|
||||
active_set = "round"
|
||||
|
||||
[theme.guilds_tree]
|
||||
auto_expand_folders = true
|
||||
# Give tree-like shape
|
||||
graphics = true
|
||||
graphics_color = "default"
|
||||
|
||||
[theme.messages_list]
|
||||
reply_indicator = ">"
|
||||
forwarded_indicator = "<"
|
||||
|
||||
mention_style = { foreground = "blue" }
|
||||
emoji_style = { foreground = "green" }
|
||||
url_style = { foreground = "blue" }
|
||||
attachment_style = { foreground = "yellow" }
|
||||
|
||||
[theme.mentions_list]
|
||||
# Note: width and height are capped to the avaliable space
|
||||
# Minimum width
|
||||
# 0 = make the list as wide as possible
|
||||
min_width = 20
|
||||
# Maximum height
|
||||
# 0 = make the list as tall as needed
|
||||
max_height = 0
|
||||
@@ -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-dark]
|
||||
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
|
||||
font-decrease=Control+minus
|
||||
font-reset=Control+equal
|
||||
# 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -1,19 +0,0 @@
|
||||
[main]
|
||||
gtk-theme=Arc-Dark
|
||||
time-format=%H:%M
|
||||
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
|
||||
@@ -1,47 +0,0 @@
|
||||
* {
|
||||
border: none;
|
||||
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8)
|
||||
}
|
||||
window {
|
||||
background-image: url("EndeavourOS_Astronaut_SpaceWalk.png");
|
||||
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.
@@ -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
|
||||
@@ -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] }}"
|
||||
@@ -1,10 +0,0 @@
|
||||
aliases:
|
||||
dp: deployments
|
||||
sec: v1/secrets
|
||||
jo: jobs
|
||||
cr: clusterroles
|
||||
crb: clusterrolebindings
|
||||
ro: roles
|
||||
rb: rolebindings
|
||||
np: networkpolicies
|
||||
gr: gitrepo
|
||||
@@ -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: ""
|
||||
@@ -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
|
||||
@@ -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.
@@ -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
|
||||
@@ -1,388 +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
|
||||
bindsym {
|
||||
# Switch to workspace
|
||||
$mod+1 workspace 1
|
||||
$mod+2 workspace 2
|
||||
$mod+3 workspace 3
|
||||
$mod+4 workspace 4
|
||||
$mod+5 workspace 5
|
||||
$mod+6 workspace 6
|
||||
$mod+7 workspace 7
|
||||
$mod+8 workspace 8
|
||||
$mod+9 workspace 9
|
||||
$mod+0 workspace 10
|
||||
$mod+Insert workspace INS
|
||||
$mod+Delete workspace DEL
|
||||
$mod+Home workspace HOM
|
||||
$mod+End workspace END
|
||||
$mod+Prior workspace PUp
|
||||
$mod+Next workspace Pdn
|
||||
|
||||
# Move focused container to workspace
|
||||
$mod+Shift+1 move container to workspace 1
|
||||
$mod+Shift+2 move container to workspace 2
|
||||
$mod+Shift+3 move container to workspace 3
|
||||
$mod+Shift+4 move container to workspace 4
|
||||
$mod+Shift+5 move container to workspace 5
|
||||
$mod+Shift+6 move container to workspace 6
|
||||
$mod+Shift+7 move container to workspace 7
|
||||
$mod+Shift+8 move container to workspace 8
|
||||
$mod+Shift+9 move container to workspace 9
|
||||
$mod+Shift+0 move container to workspace 10
|
||||
$mod+Shift+Insert move container to workspace INS
|
||||
$mod+Shift+Delete move container to workspace DEL
|
||||
$mod+Shift+Home move container to workspace HOM
|
||||
$mod+Shift+End move container to workspace END
|
||||
$mod+Shift+Prior move container to workspace PUp
|
||||
$mod+Shift+Next move container to workspace Pdn
|
||||
}
|
||||
|
||||
# local config
|
||||
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 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
|
||||
|
||||
# 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
|
||||
# only thunderbird main window as float
|
||||
for_window [app_id="org.mozilla.Thunderbird" title="^((?!Mozilla Thunderbird).)*$"] floating enable
|
||||
|
||||
# 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_custom,us_norwegian"
|
||||
xkb_options "grp:shifts_toggle,caps:escape"
|
||||
}
|
||||
|
||||
input type:mouse {
|
||||
accel_profile "flat"
|
||||
pointer_accel 0.5
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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.
@@ -1,185 +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'"
|
||||
},
|
||||
|
||||
// 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
|
||||
},
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
[screencast]
|
||||
chooser_type = dmenu
|
||||
chooser_cmd = fuzzel --dmenu
|
||||
output_name=DP-1
|
||||
max_fps=30
|
||||
@@ -1 +0,0 @@
|
||||
foot.desktop
|
||||
@@ -1,6 +0,0 @@
|
||||
partial alphanumeric_keys
|
||||
xkb_symbols "basic" {
|
||||
include "us(basic)"
|
||||
name[Group1]= "US Custom";
|
||||
key <MENU> { [ Super_L ] };
|
||||
};
|
||||
@@ -1,16 +0,0 @@
|
||||
partial alphanumeric_keys
|
||||
xkb_symbols "basic" {
|
||||
include "us(basic)"
|
||||
name[Group1]= "US Custom Norwegian";
|
||||
|
||||
key <MENU> { [ Super_L ] };
|
||||
key <AD01> { [ q, Q, aring, Aring ] };
|
||||
key <AD11> { [ bracketleft, braceleft, aring, Aring ] };
|
||||
key <AD02> { [ w, W, ae, AE ] };
|
||||
key <AC11> { [apostrophe, quotedbl, ae, AE ] };
|
||||
key <AD05> { [ t, T, oslash, Oslash ] };
|
||||
key <AC10> { [ semicolon, colon, oslash, Oslash ] };
|
||||
key <AC03> { [ d, D, eacute, Eacute ] };
|
||||
|
||||
include "level3(ralt_switch)"
|
||||
};
|
||||
@@ -1,314 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--The Xournal++ settings file. Do not edit this file! Most settings are available in the Settings dialog, the others are commented in this file, but handle with care!-->
|
||||
<settings>
|
||||
<property name="pressureSensitivity" value="true"/>
|
||||
<property name="minimumPressure" value="0.05"/>
|
||||
<property name="pressureMultiplier" value="1"/>
|
||||
<property name="zoomGesturesEnabled" value="true"/>
|
||||
<property name="selectedToolbar" value="Portrait"/>
|
||||
<property name="lastSavePath" value="/home/hjalmarlucius/Downloads"/>
|
||||
<property name="lastOpenPath" value=""/>
|
||||
<property name="lastImagePath" value=""/>
|
||||
<property name="edgePanSpeed" value="20"/>
|
||||
<property name="edgePanMaxMult" value="5"/>
|
||||
<property name="zoomStep" value="10"/>
|
||||
<property name="zoomStepScroll" value="2"/>
|
||||
<property name="displayDpi" value="72"/>
|
||||
<property name="mainWndWidth" value="1702"/>
|
||||
<property name="mainWndHeight" value="1398"/>
|
||||
<property name="maximized" value="false"/>
|
||||
<property name="showToolbar" value="true"/>
|
||||
<property name="showSidebar" value="true"/>
|
||||
<property name="sidebarWidth" value="159"/>
|
||||
<property name="sidebarNumberingStyle" value="1"/>
|
||||
<property name="sidebarOnRight" value="false"/>
|
||||
<property name="scrollbarOnLeft" value="false"/>
|
||||
<property name="menubarVisible" value="false"/>
|
||||
<property name="filepathShownInTitlebar" value="false"/>
|
||||
<property name="pageNumberShownInTitlebar" value="false"/>
|
||||
<property name="numColumns" value="1"/>
|
||||
<property name="numRows" value="1"/>
|
||||
<property name="viewFixedRows" value="false"/>
|
||||
<property name="showPairedPages" value="false"/>
|
||||
<property name="layoutVertical" value="false"/>
|
||||
<property name="layoutRightToLeft" value="false"/>
|
||||
<property name="layoutBottomToTop" value="false"/>
|
||||
<property name="numPairsOffset" value="1"/>
|
||||
<!--The icon theme, allowed values are "disabled", "onDrawOfLastPage", and "onScrollOfLastPage"-->
|
||||
<property name="emptyLastPageAppend" value="onScrollOfLastPage"/>
|
||||
<property name="presentationMode" value="false"/>
|
||||
<!--Which GUI elements are shown in default view mode, separated by a colon (,)-->
|
||||
<property name="defaultViewModeAttributes" value="showMenubar,showToolbar"/>
|
||||
<!--Which GUI elements are shown in fullscreen view mode, separated by a colon (,)-->
|
||||
<property name="fullscreenViewModeAttributes" value="goFullscren,showToolbar,showSidebar"/>
|
||||
<!--Which GUI elements are shown in presentation view mode, separated by a colon (,)-->
|
||||
<property name="presentationViewModeAttributes" value="goFullscren,showToolbar"/>
|
||||
<!--The cursor icon used with a stylus, allowed values are "none", "dot", "big", "arrow"-->
|
||||
<property name="stylusCursorType" value="dot"/>
|
||||
<!--The eraser cursor visibility used with a stylus, allowed values are "never", "always", "hover", "touch"-->
|
||||
<property name="eraserVisibility" value="always"/>
|
||||
<!--The icon theme, allowed values are "iconsColor", "iconsLucide"-->
|
||||
<property name="iconTheme" value="iconsColor"/>
|
||||
<!--Dark/light mode, allowed values are "useSystem", "forceLight", "forceDark"-->
|
||||
<property name="themeVariant" value="useSystem"/>
|
||||
<property name="highlightPosition" value="true"/>
|
||||
<property name="cursorHighlightColor" value="2164260608"/>
|
||||
<property name="cursorHighlightBorderColor" value="2147483903"/>
|
||||
<property name="cursorHighlightRadius" value="30"/>
|
||||
<property name="cursorHighlightBorderWidth" value="0"/>
|
||||
<property name="useStockIcons" value="false"/>
|
||||
<property name="disableScrollbarFadeout" value="false"/>
|
||||
<property name="disableAudio" value="false"/>
|
||||
<!--Hides scroolbars in the main window, allowed values: "none", "horizontal", "vertical", "both"-->
|
||||
<property name="scrollbarHideType" value="none"/>
|
||||
<property name="autoloadMostRecent" value="false"/>
|
||||
<property name="autoloadPdfXoj" value="true"/>
|
||||
<property name="defaultSaveName" value="%F-Note-%H-%M"/>
|
||||
<property name="defaultPdfExportName" value="%{name}_annotated"/>
|
||||
<property name="autosaveEnabled" value="true"/>
|
||||
<property name="autosaveTimeout" value="3"/>
|
||||
<property name="addHorizontalSpace" value="false"/>
|
||||
<property name="addHorizontalSpaceAmountRight" value="150"/>
|
||||
<property name="addHorizontalSpaceAmountLeft" value="150"/>
|
||||
<property name="addVerticalSpace" value="false"/>
|
||||
<property name="addVerticalSpaceAmountAbove" value="150"/>
|
||||
<property name="addVerticalSpaceAmountBelow" value="150"/>
|
||||
<property name="unlimitedScrolling" value="false"/>
|
||||
<property name="drawDirModsEnabled" value="false"/>
|
||||
<property name="drawDirModsRadius" value="50"/>
|
||||
<property name="snapRotation" value="true"/>
|
||||
<property name="snapRotationTolerance" value="0.3"/>
|
||||
<property name="snapGrid" value="false"/>
|
||||
<property name="snapGridTolerance" value="0.5"/>
|
||||
<property name="snapGridSize" value="14.17"/>
|
||||
<property name="strokeRecognizerMinSize" value="40"/>
|
||||
<property name="touchDrawing" value="false"/>
|
||||
<property name="gtkTouchInertialScrolling" value="true"/>
|
||||
<property name="pressureGuessing" value="false"/>
|
||||
<property name="recolor.enabled" value="false"/>
|
||||
<property name="recolor.sidebar" value="false"/>
|
||||
<property name="recolor.dark" value="4281349190"/>
|
||||
<property name="recolor.light" value="4291219701"/>
|
||||
<property name="selectionBorderColor" value="4294901760"/>
|
||||
<property name="backgroundColor" value="4292664021"/>
|
||||
<property name="selectionMarkerColor" value="4285702095"/>
|
||||
<property name="activeSelectionColor" value="4286381056"/>
|
||||
<property name="touchZoomStartThreshold" value="0"/>
|
||||
<property name="pageRerenderThreshold" value="5"/>
|
||||
<!--The count of rendered PDF pages which will be cached.-->
|
||||
<property name="pdfPageCacheSize" value="10"/>
|
||||
<property name="preloadPagesBefore" value="3"/>
|
||||
<property name="preloadPagesAfter" value="5"/>
|
||||
<property name="eagerPageCleanup" value="true"/>
|
||||
<!--Config for new pages-->
|
||||
<property name="pageTemplate" value="xoj/template copyLastPageSettings=true size=595.275591x841.889764 backgroundType=lined backgroundColor=#ffffff "/>
|
||||
<property name="sizeUnit" value=""/>
|
||||
<property name="audioFolder" value=""/>
|
||||
<property name="audioInputDevice" value="-1"/>
|
||||
<property name="audioOutputDevice" value="-1"/>
|
||||
<property name="audioSampleRate" value="44100"/>
|
||||
<property name="audioGain" value="1"/>
|
||||
<property name="defaultSeekTime" value="5"/>
|
||||
<property name="pluginEnabled" value=""/>
|
||||
<property name="pluginDisabled" value=""/>
|
||||
<property name="strokeFilterIgnoreTime" value="150"/>
|
||||
<property name="strokeFilterIgnoreLength" value="1"/>
|
||||
<property name="strokeFilterSuccessiveTime" value="500"/>
|
||||
<property name="strokeFilterEnabled" value="false"/>
|
||||
<property name="doActionOnStrokeFiltered" value="false"/>
|
||||
<property name="trySelectOnStrokeFiltered" value="false"/>
|
||||
<property name="snapRecognizedShapesEnabled" value="false"/>
|
||||
<property name="restoreLineWidthEnabled" value="false"/>
|
||||
<property name="numIgnoredStylusEvents" value="0"/>
|
||||
<property name="inputSystemTPCButton" value="false"/>
|
||||
<property name="inputSystemDrawOutsideWindow" value="true"/>
|
||||
<property name="preferredLocale" value=""/>
|
||||
<property name="useSpacesForTab" value="false"/>
|
||||
<property name="numberOfSpacesForTab" value="4"/>
|
||||
<property name="laserPointerFadeOutTime" value="500"/>
|
||||
<property name="stabilizerAveragingMethod" value="0"/>
|
||||
<property name="stabilizerPreprocessor" value="0"/>
|
||||
<property name="stabilizerBuffersize" value="20"/>
|
||||
<property name="stabilizerSigma" value="0.5"/>
|
||||
<property name="stabilizerDeadzoneRadius" value="1.3"/>
|
||||
<property name="stabilizerDrag" value="0.4"/>
|
||||
<property name="stabilizerMass" value="5"/>
|
||||
<property name="stabilizerCuspDetection" value="true"/>
|
||||
<property name="stabilizerFinalizeStroke" value="true"/>
|
||||
<property name="colorPalette" value="/usr/share/xournalpp/palettes/xournal.gpl"/>
|
||||
<property name="latexSettings.autoCheckDependencies" value="true"/>
|
||||
<property name="latexSettings.defaultText" value="x^2"/>
|
||||
<property name="latexSettings.globalTemplatePath" value="/usr/share/xournalpp/resources/default_template.tex"/>
|
||||
<property name="latexSettings.genCmd" value="pdflatex -halt-on-error -interaction=nonstopmode '{}'"/>
|
||||
<property name="latexSettings.sourceViewThemeId" value="classic"/>
|
||||
<property name="latexSettings.editorFont" value="Monospace 12"/>
|
||||
<property name="latexSettings.useCustomEditorFont" value="false"/>
|
||||
<property name="latexSettings.editorWordWrap" value="true"/>
|
||||
<property name="latexSettings.sourceViewAutoIndent" value="true"/>
|
||||
<property name="latexSettings.sourceViewSyntaxHighlight" value="true"/>
|
||||
<property name="latexSettings.sourceViewShowLineNumbers" value="false"/>
|
||||
<property name="latexSettings.useExternalEditor" value="false"/>
|
||||
<property name="latexSettings.externalEditorAutoConfirm" value="false"/>
|
||||
<property name="latexSettings.externalEditorCmd" value=""/>
|
||||
<property name="latexSettings.temporaryFileExt" value="tex"/>
|
||||
<property name="font" font="Sans" size="12"/>
|
||||
<data name="buttonConfig">
|
||||
<data name="default">
|
||||
<attribute name="color" type="hex" value="ff000000"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
<attribute name="size" type="string" value="thin"/>
|
||||
<attribute name="strokeType" type="string" value="none"/>
|
||||
<attribute name="tool" type="string" value="pen"/>
|
||||
</data>
|
||||
<data name="eraser">
|
||||
<attribute name="eraserMode" type="string" value="none"/>
|
||||
<attribute name="size" type="string" value="none"/>
|
||||
<attribute name="tool" type="string" value="eraser"/>
|
||||
</data>
|
||||
<data name="left">
|
||||
<attribute name="tool" type="string" value="none"/>
|
||||
</data>
|
||||
<data name="middle">
|
||||
<attribute name="tool" type="string" value="hand"/>
|
||||
</data>
|
||||
<data name="right">
|
||||
<attribute name="tool" type="string" value="none"/>
|
||||
</data>
|
||||
<data name="stylus">
|
||||
<attribute name="color" type="hex" value="ffffff00"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
<attribute name="size" type="string" value="none"/>
|
||||
<attribute name="tool" type="string" value="highlighter"/>
|
||||
</data>
|
||||
<data name="stylus2">
|
||||
<attribute name="tool" type="string" value="none"/>
|
||||
</data>
|
||||
<data name="touch">
|
||||
<attribute name="device" type="string" value=""/>
|
||||
<attribute name="disableDrawing" type="boolean" value="false"/>
|
||||
<attribute name="tool" type="string" value="none"/>
|
||||
</data>
|
||||
</data>
|
||||
<data name="deviceClasses">
|
||||
<data name="">
|
||||
<attribute name="deviceClass" type="int" value="0"/>
|
||||
<attribute name="deviceSource" type="int" value="0"/>
|
||||
</data>
|
||||
<data name="Wacom Co.,Ltd. Wacom One pen tablet small">
|
||||
<attribute name="deviceClass" type="int" value="2"/>
|
||||
<attribute name="deviceSource" type="int" value="1"/>
|
||||
</data>
|
||||
<data name="Wacom Co.,Ltd. Wacom One pen tablet small (Eraser)">
|
||||
<attribute name="deviceClass" type="int" value="3"/>
|
||||
<attribute name="deviceSource" type="int" value="2"/>
|
||||
</data>
|
||||
<data name="Wayland Pointer">
|
||||
<attribute name="deviceClass" type="int" value="1"/>
|
||||
<attribute name="deviceSource" type="int" value="0"/>
|
||||
</data>
|
||||
<data name="Wayland Wheel Scrolling">
|
||||
<attribute name="deviceClass" type="int" value="1"/>
|
||||
<attribute name="deviceSource" type="int" value="0"/>
|
||||
</data>
|
||||
</data>
|
||||
<data name="tools">
|
||||
<attribute name="current" type="string" value="pen"/>
|
||||
<data name="drawArrow">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="drawCoordinateSystem">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="drawDoubleArrow">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="drawEllipse">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="drawRect">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="drawSpline">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="eraser">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
<attribute name="size" type="string" value="MEDIUM"/>
|
||||
<attribute name="type" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="hand">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="highlighter">
|
||||
<attribute name="color" type="hex" value="ffffff00"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
<attribute name="fill" type="int" value="0"/>
|
||||
<attribute name="fillAlpha" type="int" value="128"/>
|
||||
<attribute name="size" type="string" value="MEDIUM"/>
|
||||
</data>
|
||||
<data name="image">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="laserPointerHighlighter">
|
||||
<attribute name="color" type="hex" value="ffff0000"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
<attribute name="size" type="string" value="MEDIUM"/>
|
||||
</data>
|
||||
<data name="laserPointerPen">
|
||||
<attribute name="color" type="hex" value="ffff0000"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
<attribute name="size" type="string" value="MEDIUM"/>
|
||||
</data>
|
||||
<data name="pen">
|
||||
<attribute name="color" type="hex" value="ffff00ff"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
<attribute name="fill" type="int" value="0"/>
|
||||
<attribute name="fillAlpha" type="int" value="128"/>
|
||||
<attribute name="size" type="string" value="THIN"/>
|
||||
<attribute name="style" type="string" value="plain"/>
|
||||
</data>
|
||||
<data name="playObject">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="selectMultiLayerRect">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="selectMultiLayerRegion">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="selectObject">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="selectPdfTextLinear">
|
||||
<attribute name="color" type="hex" value="ff000000"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="selectPdfTextRect">
|
||||
<attribute name="color" type="hex" value="ff000000"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="selectRect">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="selectRegion">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="showFloatingToolbox">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="text">
|
||||
<attribute name="color" type="hex" value="ff000000"/>
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
<data name="verticalSpace">
|
||||
<attribute name="drawingType" type="string" value="default"/>
|
||||
</data>
|
||||
</data>
|
||||
<data name="touch">
|
||||
<attribute name="cmdDisable" type="string" value=""/>
|
||||
<attribute name="cmdEnable" type="string" value=""/>
|
||||
<attribute name="disableTouch" type="boolean" value="false"/>
|
||||
<attribute name="method" type="string" value="auto"/>
|
||||
<attribute name="timeout" type="int" value="1000"/>
|
||||
</data>
|
||||
</settings>
|
||||
@@ -1,78 +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 ../..'
|
||||
catai () {
|
||||
rg -l --hidden --glob '!.git/*' '^' -- "$@" | while IFS= read -r f; do
|
||||
printf "\n── %s ──\n" "$f"
|
||||
echo '```'
|
||||
cat "$f"
|
||||
echo '```'
|
||||
done
|
||||
}
|
||||
|
||||
# --- 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
|
||||
@@ -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
|
||||
@@ -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 +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
-1
@@ -1,2 +1,2 @@
|
||||
[Sleep]
|
||||
[sleep]
|
||||
HibernateDelaySec=30min
|
||||
@@ -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
|
||||
@@ -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,23 +0,0 @@
|
||||
# output
|
||||
set $out-left DP-1
|
||||
set $out-right DP-2
|
||||
output $out-left resolution 2560x1440 position 0 0
|
||||
output $out-right resolution 3840x2160 position 2560 0
|
||||
|
||||
# switch to workspace
|
||||
workspace 1 output $out-left
|
||||
workspace 2 output $out-left
|
||||
workspace 3 output $out-left
|
||||
workspace 4 output $out-left
|
||||
workspace 5 output $out-left
|
||||
workspace 6 output $out-right
|
||||
workspace 7 output $out-right
|
||||
workspace 8 output $out-right
|
||||
workspace 9 output $out-right
|
||||
workspace 10 output $out-right
|
||||
workspace INS output $out-left
|
||||
workspace DEL output $out-right
|
||||
workspace HOM output $out-left
|
||||
workspace END output $out-right
|
||||
workspace PUp output $out-left
|
||||
workspace PDn output $out-right
|
||||
@@ -1,41 +0,0 @@
|
||||
{
|
||||
"network": {
|
||||
"interface": "enp6s0",
|
||||
"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
|
||||
},
|
||||
"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,70 @@
|
||||
set $out-left DP-1
|
||||
set $out-right DP-2
|
||||
output $out-left resolution 2560x1440 position 0 0
|
||||
output $out-right resolution 3840x2160 position 2560 0
|
||||
|
||||
# switch to workspace
|
||||
workspace $ws1 output $out-left
|
||||
workspace $ws2 output $out-right
|
||||
workspace $ws3 output $out-left
|
||||
workspace $ws4 output $out-right
|
||||
workspace $ws5 output $out-left
|
||||
workspace $ws6 output $out-right
|
||||
workspace $ws7 output $out-left
|
||||
workspace $ws8 output $out-right
|
||||
workspace $ws9 output $out-left
|
||||
workspace $ws10 output $out-right
|
||||
|
||||
# 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
|
||||
bindsym $mod+Insert workspace $ws5
|
||||
bindsym $mod+Delete workspace $ws6
|
||||
bindsym $mod+Home workspace $ws7
|
||||
bindsym $mod+End workspace $ws8
|
||||
bindsym $mod+Prior workspace $ws9
|
||||
bindsym $mod+Next 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
|
||||
bindsym $mod+Ctrl+Insert move container to workspace $ws5
|
||||
bindsym $mod+Ctrl+Delete move container to workspace $ws6
|
||||
bindsym $mod+Ctrl+Home move container to workspace $ws7
|
||||
bindsym $mod+Ctrl+End move container to workspace $ws8
|
||||
bindsym $mod+Ctrl+Prior move container to workspace $ws9
|
||||
bindsym $mod+Ctrl+Next 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
|
||||
bindsym $mod+Shift+Insert move container to workspace $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+Delete move container to workspace $ws8; workspace $ws6
|
||||
bindsym $mod+Shift+Home move container to workspace $ws6; workspace $ws7
|
||||
bindsym $mod+Shift+End move container to workspace $ws9; workspace $ws8
|
||||
bindsym $mod+Shift+Prior move container to workspace $ws7; workspace $ws9
|
||||
bindsym $mod+Shift+Next 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": "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,26 +0,0 @@
|
||||
# input
|
||||
input type:tablet_tool map_to_region 2560 0 2560 1440
|
||||
|
||||
# output
|
||||
exec create_output HEADLESS-1
|
||||
output DP-1 resolution 5120x1440 position 0 0
|
||||
output HEADLESS-1 resolution 2560x1440 position 5120 0
|
||||
bindsym $mod+x output create HEADLESS-1
|
||||
bindsym $mod+Shift+x output HEADLESS-1 unplug
|
||||
|
||||
workspace 1 output DP-1
|
||||
workspace 2 output DP-1
|
||||
workspace 3 output DP-1
|
||||
workspace 4 output DP-1
|
||||
workspace 5 output DP-1
|
||||
workspace 6 output DP-1
|
||||
workspace 7 output DP-1
|
||||
workspace 8 output DP-1
|
||||
workspace 9 output DP-1
|
||||
workspace 10 output DP-1
|
||||
workspace INS output HEADLESS-1
|
||||
workspace DEL output HEADLESS-1
|
||||
workspace HOM output HEADLESS-1
|
||||
workspace END output HEADLESS-1
|
||||
workspace PUp output HEADLESS-1
|
||||
workspace PDn output HEADLESS-1
|
||||
@@ -1,41 +0,0 @@
|
||||
{
|
||||
"network": {
|
||||
"interface": "wlan0",
|
||||
"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
|
||||
},
|
||||
"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
|
||||
@@ -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'"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
# input
|
||||
input type:touchpad {
|
||||
pointer_accel 0.8
|
||||
}
|
||||
|
||||
# output
|
||||
output eDP-1 resolution 2736x1824 scale 1.6
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"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
|
||||
},
|
||||
"modules-right": [
|
||||
"idle_inhibitor",
|
||||
"cpu",
|
||||
"custom/cputemp",
|
||||
"memory",
|
||||
"disk#root",
|
||||
"backlight",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"clock",
|
||||
"tray",
|
||||
"custom/power"
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
@@ -1,8 +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
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"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
|
||||
},
|
||||
"modules-right": [
|
||||
"idle_inhibitor",
|
||||
"cpu",
|
||||
"custom/cputemp",
|
||||
"memory",
|
||||
"disk#root",
|
||||
"backlight",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"clock",
|
||||
"tray",
|
||||
"custom/power"
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,58 @@
|
||||
mouse = true
|
||||
hide_blocked_users = true
|
||||
messages_limit = 50
|
||||
editor = "default"
|
||||
timestamps = true
|
||||
timestamps_format = "01-02 15:04:05 (Z07:00)"
|
||||
show_attachment_links = false
|
||||
|
||||
[keys]
|
||||
focus_guilds_tree = "Ctrl+O"
|
||||
focus_messages_text = "Ctrl+P"
|
||||
focus_message_input = "Ctrl+N"
|
||||
toggle_guilds_tree = "Ctrl+P"
|
||||
select_previous = "Rune[k]"
|
||||
select_next = "Rune[j]"
|
||||
select_first = "Rune[g]"
|
||||
select_last = "Rune[G]"
|
||||
logout = "Ctrl+Shift+D"
|
||||
quit = "Ctrl+C"
|
||||
[keys.guilds_tree]
|
||||
select_current = "Enter"
|
||||
[keys.messages_text]
|
||||
select_reply = "Rune[s]"
|
||||
select_pin = "Rune[p]"
|
||||
reply = "Rune[r]"
|
||||
reply_mention = "Rune[R]"
|
||||
delete = "Rune[d]"
|
||||
yank = "Rune[y]"
|
||||
open = "Rune[o]"
|
||||
[keys.message_input]
|
||||
send = "Enter"
|
||||
editor = "Ctrl+E"
|
||||
cancel = "Ctrl+D"
|
||||
|
||||
[notifications]
|
||||
enabled = true
|
||||
duration = 500
|
||||
[notifications.sound]
|
||||
enabled = true
|
||||
only_on_ping = false
|
||||
|
||||
[theme]
|
||||
border_color = "default"
|
||||
border_padding = [0, 0, 1, 1]
|
||||
title_color = "default"
|
||||
background_color = "default"
|
||||
[theme.guilds_tree]
|
||||
auto_expand_folders = true
|
||||
channel_color = "white"
|
||||
graphics = true
|
||||
guild_color = "white"
|
||||
private_channel_color = "white"
|
||||
[theme.messages_text]
|
||||
author_color = "aqua"
|
||||
content_color = "white"
|
||||
emoji_color = "green"
|
||||
link_color = "blue"
|
||||
attachment_color = "yellow"
|
||||
@@ -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
|
||||
@@ -5,252 +5,144 @@
|
||||
# "defopt",
|
||||
# ]
|
||||
# ///
|
||||
# TODO
|
||||
# pre-luks remote ssh
|
||||
# add ufw setup
|
||||
# - 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 getpass import getuser
|
||||
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.home()
|
||||
ROOT_TGT = Path("/")
|
||||
DOTFILES = Path(__file__).resolve().parent
|
||||
HOME_SRC = DOTFILES / "HOME"
|
||||
ROOT_SRC = DOTFILES / "ROOT"
|
||||
CFG_TGT = HOME_TGT / ".config"
|
||||
CFG_SRC = DOTFILES / "CONFIG"
|
||||
CUSTOM_SRC = DOTFILES / f"custom-{HOSTNAME}"
|
||||
USERNAME = getuser()
|
||||
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",
|
||||
"digikam",
|
||||
# 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=(
|
||||
"xdg-terminal-exec",
|
||||
# visuals
|
||||
"wlsunset", # eye saver
|
||||
"wdisplays", # ui for display settings
|
||||
# clipboard
|
||||
"wl-clip-persist", # keep clipboard after close
|
||||
# div
|
||||
apps=("bitwarden", "qalculate-gtk", "vesktop"),
|
||||
swaytools=(
|
||||
"flashfocus", # quick flash when changing app in focus
|
||||
"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",
|
||||
# ssh for luks unlocking
|
||||
"dracut-crypt-ssh",
|
||||
"dropbear",
|
||||
),
|
||||
virtwin=(
|
||||
"qemu-full", # the emulator itself
|
||||
"libvirt", # the backend manager - handles running qemu
|
||||
"virt-manager", # the graphical dashboard
|
||||
"virt-viewer", # the display window
|
||||
"iptables-nft", # for using iptables instead of nft
|
||||
"dnsmasq", # lightweight DHCP and DNS server
|
||||
"bridge-utils", # tools for creating network bridges
|
||||
"vde2", # networking plumbing
|
||||
"openbsd-netcat", # networking plumbing
|
||||
"swtpm", # win11 requirement
|
||||
),
|
||||
optional_nvidia_containers=("nvidia-docker",),
|
||||
)
|
||||
|
||||
|
||||
def compare(src: Path, tgt: Path) -> str:
|
||||
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 compare_files(a: Path, b: Path) -> str:
|
||||
return "".join(
|
||||
unified_diff(open(a).readlines(), open(b).readlines(), str(a), str(b))
|
||||
)
|
||||
|
||||
|
||||
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, parents=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:
|
||||
tgt.symlink_to(src)
|
||||
else:
|
||||
run(["cp", str(src), str(tgt)])
|
||||
return True
|
||||
|
||||
|
||||
def helper_clone_foldercontents(
|
||||
src_parent: Path,
|
||||
tgt_parent: Path,
|
||||
folder: str,
|
||||
overwrite: bool,
|
||||
symlink: bool = True,
|
||||
def helper_symlink_contents(
|
||||
source_folder: str | Path, target_folder: str | Path, overwrite: bool
|
||||
) -> None:
|
||||
src_folder = src_parent.expanduser() / folder
|
||||
tgt_folder = tgt_parent.expanduser() / folder
|
||||
tgt_folder.mkdir(exist_ok=True, parents=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)
|
||||
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():
|
||||
if overwrite:
|
||||
tgt.rmdir()
|
||||
tgt.symlink_to(src)
|
||||
else:
|
||||
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
|
||||
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:
|
||||
@@ -265,229 +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, parents=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, "xournalpp", overwrite)
|
||||
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:
|
||||
helper_uninstall("autotiling", "cliphist")
|
||||
helper_install(*installmap["sway"], reinstall=reinstall)
|
||||
# sudo stuff
|
||||
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())
|
||||
# div app configs
|
||||
if (tgt := CFG_TGT / "waybar/config").exists(): # precedence over config.jsonc
|
||||
tgt.unlink()
|
||||
for sub in [
|
||||
"sway",
|
||||
"waybar",
|
||||
"gtklock",
|
||||
"gtk-3.0",
|
||||
"mako",
|
||||
"fuzzel",
|
||||
"nwg-drawer",
|
||||
"xdg-desktop-portal-wlr",
|
||||
"foot",
|
||||
"xkb/symbols",
|
||||
]:
|
||||
helper_clone_foldercontents(CFG_SRC, CFG_TGT, sub, overwrite)
|
||||
helper_maybe_copy(CFG_SRC, CFG_TGT, "xdg-terminals.list", overwrite, symlink=True)
|
||||
helper_maybe_copy(CFG_SRC, CFG_TGT, "mimeapps.list", overwrite, symlink=True)
|
||||
# custom sway configs
|
||||
helper_clone_foldercontents(CUSTOM_SRC / "CONFIG", CFG_TGT, "sway", overwrite)
|
||||
# custom waybar configs
|
||||
helper_clone_foldercontents(CUSTOM_SRC / "CONFIG", CFG_TGT, "waybar", overwrite)
|
||||
# desktop entries
|
||||
helper_clone_foldercontents(
|
||||
HOME_SRC,
|
||||
HOME_TGT,
|
||||
".local/share/applications",
|
||||
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_virtwin(overwrite: bool, reinstall: bool) -> None:
|
||||
helper_install(*installmap["virtwin"], reinstall=reinstall)
|
||||
run(["sudo", "usermod", "-aG", "libvirt", USERNAME])
|
||||
run("sudo virsh net-start default".split())
|
||||
run("sudo virsh net-autostart default".split())
|
||||
run("systemctl enable --now libvirtd".split())
|
||||
|
||||
|
||||
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)
|
||||
# luks
|
||||
run("sudo mkdir -p /root/.ssh".split())
|
||||
run("sudo chmod 700 /root/.ssh".split())
|
||||
run("sudo touch /root/.ssh/authorized_keys".split())
|
||||
run("sudo chmod 600 /root/.ssh/authorized_keys".split())
|
||||
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")
|
||||
@@ -495,62 +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)
|
||||
install_virtwin(overwrite, 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
|
||||
https://vdirsyncer.pimutils.org/en/stable/config.html#google
|
||||
- run `vdirsyncer discover` then `vdiscover sync`
|
||||
set up vdirsyncer with google calendar using
|
||||
https://vdirsyncer.pimutils.org/en/stable/config.html#google
|
||||
|
||||
# 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
|
||||
- /etc/hosts: configure
|
||||
- /root/.ssh/authorized_keys: add permitted ssh keys
|
||||
- /etc/dracut.conf.d/crypt-ssh.conf: set port + 'unlock' helper
|
||||
- /etc/dracut.conf.d/eos-defaults.conf: don't omit network
|
||||
- /etc/kernel/cmdline: add `rd.neednet=1 ip=dhcp` arguments
|
||||
- `sudo dracut-rebuild`
|
||||
- run `hjarl-system/k8s.py` scripts
|
||||
|
||||
# docker / home assistant
|
||||
- docker with non-root daemon
|
||||
`sudo groupadd docker && sudo usermod -aG docker $USER`
|
||||
- run home assistant and music assistant scripts to start docker services
|
||||
|
||||
# virtual machine
|
||||
- /etc/libvirt/network.conf: set `firewall_backend = "iptables"` and restart libvirtd
|
||||
- download windows + virtio driver ISOs
|
||||
- vm setup:
|
||||
- CPUs: Uncheck "Copy host CPU configuration" and select host-passthrough
|
||||
- Disk (IDE/SATA): Change the "Disk bus" to VirtIO
|
||||
- NIC (Network): Change "Device model" to virtio
|
||||
- Add Hardware: Click "Add Hardware" -> "Storage" -> Select "CDROM" -> select virtio driver iso
|
||||
docker with non-root daemon
|
||||
`sudo groupadd docker && sudo usermod -aG docker $USER`
|
||||
""")
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,3 @@
|
||||
function ll --description 'List contents of directory using long format'
|
||||
exa --icons -l -g $argv
|
||||
end
|
||||
@@ -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
|
||||
@@ -0,0 +1,156 @@
|
||||
# Syntax highlighting
|
||||
# -------------------
|
||||
"attribute" = "yellow"
|
||||
|
||||
"type" = "yellow"
|
||||
"type.enum.variant" = "teal"
|
||||
|
||||
"constructor" = "sapphire"
|
||||
|
||||
"constant" = "peach"
|
||||
"constant.character" = "teal"
|
||||
"constant.character.escape" = "pink"
|
||||
|
||||
"string" = "green"
|
||||
"string.regexp" = "pink"
|
||||
"string.special" = "blue"
|
||||
"string.special.symbol" = "red"
|
||||
|
||||
"comment" = { fg = "overlay2", modifiers = ["italic"] }
|
||||
|
||||
"variable" = "text"
|
||||
"variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
|
||||
"variable.builtin" = "red"
|
||||
"variable.other.member" = "teal"
|
||||
|
||||
"label" = "sapphire" # used for lifetimes
|
||||
|
||||
"punctuation" = "overlay2"
|
||||
"punctuation.special" = "sky"
|
||||
|
||||
"keyword" = "mauve"
|
||||
"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
|
||||
|
||||
"operator" = "sky"
|
||||
|
||||
"function" = "blue"
|
||||
"function.macro" = "mauve"
|
||||
|
||||
"tag" = "blue"
|
||||
|
||||
"namespace" = { fg = "yellow", modifiers = ["italic"] }
|
||||
|
||||
"special" = "blue" # fuzzy highlight
|
||||
|
||||
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
|
||||
"markup.heading.1" = "lavender"
|
||||
"markup.heading.2" = "mauve"
|
||||
"markup.heading.3" = "green"
|
||||
"markup.heading.4" = "yellow"
|
||||
"markup.heading.5" = "pink"
|
||||
"markup.heading.6" = "teal"
|
||||
"markup.list" = "mauve"
|
||||
"markup.bold" = { modifiers = ["bold"] }
|
||||
"markup.italic" = { modifiers = ["italic"] }
|
||||
"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
|
||||
"markup.link.text" = "blue"
|
||||
"markup.raw" = "flamingo"
|
||||
|
||||
"diff.plus" = "green"
|
||||
"diff.minus" = "red"
|
||||
"diff.delta" = "blue"
|
||||
|
||||
# User Interface
|
||||
# --------------
|
||||
"ui.background" = { fg = "text", bg = "base" }
|
||||
|
||||
"ui.linenr" = { fg = "surface1" }
|
||||
"ui.linenr.selected" = { fg = "lavender" }
|
||||
|
||||
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
|
||||
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
|
||||
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
|
||||
|
||||
"ui.popup" = { fg = "text", bg = "surface0" }
|
||||
"ui.window" = { fg = "crust" }
|
||||
"ui.help" = { fg = "overlay2", bg = "surface0" }
|
||||
|
||||
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
|
||||
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
|
||||
"ui.bufferline.background" = { bg = "crust" }
|
||||
|
||||
"ui.text" = "text"
|
||||
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
|
||||
"ui.text.inactive" = { fg = "overlay1" }
|
||||
|
||||
"ui.virtual" = "overlay0"
|
||||
"ui.virtual.ruler" = { bg = "surface0" }
|
||||
"ui.virtual.indent-guide" = "surface0"
|
||||
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
|
||||
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
|
||||
|
||||
"ui.selection" = { bg = "surface1" }
|
||||
|
||||
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
|
||||
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
|
||||
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
|
||||
|
||||
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
|
||||
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
|
||||
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
|
||||
|
||||
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
|
||||
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
|
||||
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
|
||||
|
||||
"ui.cursorline.primary" = { bg = "cursorline" }
|
||||
|
||||
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"ui.menu" = { fg = "overlay2", bg = "surface0" }
|
||||
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
|
||||
|
||||
error = "red"
|
||||
warning = "yellow"
|
||||
info = "sky"
|
||||
hint = "teal"
|
||||
|
||||
[palette]
|
||||
rosewater = "#f2d5cf"
|
||||
flamingo = "#eebebe"
|
||||
pink = "#f4b8e4"
|
||||
mauve = "#ca9ee6"
|
||||
red = "#e78284"
|
||||
maroon = "#ea999c"
|
||||
peach = "#ef9f76"
|
||||
yellow = "#e5c890"
|
||||
green = "#a6d189"
|
||||
teal = "#81c8be"
|
||||
sky = "#99d1db"
|
||||
sapphire = "#85c1dc"
|
||||
blue = "#8caaee"
|
||||
lavender = "#babbf1"
|
||||
text = "#c6d0f5"
|
||||
subtext1 = "#b5bfe2"
|
||||
subtext0 = "#a5adce"
|
||||
overlay2 = "#949cbb"
|
||||
overlay1 = "#838ba7"
|
||||
overlay0 = "#737994"
|
||||
surface2 = "#626880"
|
||||
surface1 = "#51576d"
|
||||
surface0 = "#414559"
|
||||
base = "#303446"
|
||||
mantle = "#292c3c"
|
||||
crust = "#232634"
|
||||
|
||||
cursorline = "#3b3f52"
|
||||
secondary_cursor = "#b8a5a6"
|
||||
secondary_cursor_normal = "#9192be"
|
||||
secondary_cursor_insert = "#83a275"
|
||||
@@ -0,0 +1,156 @@
|
||||
# Syntax highlighting
|
||||
# -------------------
|
||||
"attribute" = "yellow"
|
||||
|
||||
"type" = "yellow"
|
||||
"type.enum.variant" = "teal"
|
||||
|
||||
"constructor" = "sapphire"
|
||||
|
||||
"constant" = "peach"
|
||||
"constant.character" = "teal"
|
||||
"constant.character.escape" = "pink"
|
||||
|
||||
"string" = "green"
|
||||
"string.regexp" = "pink"
|
||||
"string.special" = "blue"
|
||||
"string.special.symbol" = "red"
|
||||
|
||||
"comment" = { fg = "overlay2", modifiers = ["italic"] }
|
||||
|
||||
"variable" = "text"
|
||||
"variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
|
||||
"variable.builtin" = "red"
|
||||
"variable.other.member" = "teal"
|
||||
|
||||
"label" = "sapphire" # used for lifetimes
|
||||
|
||||
"punctuation" = "overlay2"
|
||||
"punctuation.special" = "sky"
|
||||
|
||||
"keyword" = "mauve"
|
||||
"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
|
||||
|
||||
"operator" = "sky"
|
||||
|
||||
"function" = "blue"
|
||||
"function.macro" = "mauve"
|
||||
|
||||
"tag" = "blue"
|
||||
|
||||
"namespace" = { fg = "yellow", modifiers = ["italic"] }
|
||||
|
||||
"special" = "blue" # fuzzy highlight
|
||||
|
||||
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
|
||||
"markup.heading.1" = "lavender"
|
||||
"markup.heading.2" = "mauve"
|
||||
"markup.heading.3" = "green"
|
||||
"markup.heading.4" = "yellow"
|
||||
"markup.heading.5" = "pink"
|
||||
"markup.heading.6" = "teal"
|
||||
"markup.list" = "mauve"
|
||||
"markup.bold" = { modifiers = ["bold"] }
|
||||
"markup.italic" = { modifiers = ["italic"] }
|
||||
"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
|
||||
"markup.link.text" = "blue"
|
||||
"markup.raw" = "flamingo"
|
||||
|
||||
"diff.plus" = "green"
|
||||
"diff.minus" = "red"
|
||||
"diff.delta" = "blue"
|
||||
|
||||
# User Interface
|
||||
# --------------
|
||||
"ui.background" = { fg = "text", bg = "base" }
|
||||
|
||||
"ui.linenr" = { fg = "surface1" }
|
||||
"ui.linenr.selected" = { fg = "lavender" }
|
||||
|
||||
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
|
||||
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
|
||||
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
|
||||
|
||||
"ui.popup" = { fg = "text", bg = "surface0" }
|
||||
"ui.window" = { fg = "crust" }
|
||||
"ui.help" = { fg = "overlay2", bg = "surface0" }
|
||||
|
||||
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
|
||||
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
|
||||
"ui.bufferline.background" = { bg = "crust" }
|
||||
|
||||
"ui.text" = "text"
|
||||
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
|
||||
"ui.text.inactive" = { fg = "overlay1" }
|
||||
|
||||
"ui.virtual" = "overlay0"
|
||||
"ui.virtual.ruler" = { bg = "surface0" }
|
||||
"ui.virtual.indent-guide" = "surface0"
|
||||
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
|
||||
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
|
||||
|
||||
"ui.selection" = { bg = "surface1" }
|
||||
|
||||
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
|
||||
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
|
||||
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
|
||||
|
||||
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
|
||||
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
|
||||
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
|
||||
|
||||
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
|
||||
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
|
||||
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
|
||||
|
||||
"ui.cursorline.primary" = { bg = "cursorline" }
|
||||
|
||||
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"ui.menu" = { fg = "overlay2", bg = "surface0" }
|
||||
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
|
||||
|
||||
error = "red"
|
||||
warning = "yellow"
|
||||
info = "sky"
|
||||
hint = "teal"
|
||||
|
||||
[palette]
|
||||
rosewater = "#dc8a78"
|
||||
flamingo = "#dd7878"
|
||||
pink = "#ea76cb"
|
||||
mauve = "#8839ef"
|
||||
red = "#d20f39"
|
||||
maroon = "#e64553"
|
||||
peach = "#fe640b"
|
||||
yellow = "#df8e1d"
|
||||
green = "#40a02b"
|
||||
teal = "#179299"
|
||||
sky = "#04a5e5"
|
||||
sapphire = "#209fb5"
|
||||
blue = "#1e66f5"
|
||||
lavender = "#7287fd"
|
||||
text = "#4c4f69"
|
||||
subtext1 = "#5c5f77"
|
||||
subtext0 = "#6c6f85"
|
||||
overlay2 = "#7c7f93"
|
||||
overlay1 = "#8c8fa1"
|
||||
overlay0 = "#9ca0b0"
|
||||
surface2 = "#acb0be"
|
||||
surface1 = "#bcc0cc"
|
||||
surface0 = "#ccd0da"
|
||||
base = "#eff1f5"
|
||||
mantle = "#e6e9ef"
|
||||
crust = "#dce0e8"
|
||||
|
||||
cursorline = "#e8ecf1"
|
||||
secondary_cursor = "#e1a99d"
|
||||
secondary_cursor_normal = "#97a7fb"
|
||||
secondary_cursor_insert = "#74b867"
|
||||
@@ -0,0 +1,159 @@
|
||||
# Syntax highlighting
|
||||
# -------------------
|
||||
"attribute" = "yellow"
|
||||
|
||||
"type" = "yellow"
|
||||
"type.enum.variant" = "teal"
|
||||
|
||||
"constructor" = "sapphire"
|
||||
|
||||
"constant" = "peach"
|
||||
"constant.character" = "teal"
|
||||
"constant.character.escape" = "pink"
|
||||
|
||||
"string" = "green"
|
||||
"string.regexp" = "pink"
|
||||
"string.special" = "blue"
|
||||
"string.special.symbol" = "red"
|
||||
|
||||
"comment" = { fg = "overlay2", modifiers = ["italic"] }
|
||||
|
||||
"variable" = "text"
|
||||
"variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
|
||||
"variable.builtin" = "red"
|
||||
"variable.other.member" = "teal"
|
||||
|
||||
"label" = "sapphire" # used for lifetimes
|
||||
|
||||
"punctuation" = "overlay2"
|
||||
"punctuation.special" = "sky"
|
||||
|
||||
"keyword" = "mauve"
|
||||
"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
|
||||
|
||||
"operator" = "sky"
|
||||
|
||||
"function" = "blue"
|
||||
"function.macro" = "mauve"
|
||||
|
||||
"tag" = "blue"
|
||||
|
||||
"namespace" = { fg = "yellow", modifiers = ["italic"] }
|
||||
|
||||
"special" = "blue" # fuzzy highlight
|
||||
|
||||
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
|
||||
"markup.heading.1" = "lavender"
|
||||
"markup.heading.2" = "mauve"
|
||||
"markup.heading.3" = "green"
|
||||
"markup.heading.4" = "yellow"
|
||||
"markup.heading.5" = "pink"
|
||||
"markup.heading.6" = "teal"
|
||||
"markup.list" = "mauve"
|
||||
"markup.bold" = { modifiers = ["bold"] }
|
||||
"markup.italic" = { modifiers = ["italic"] }
|
||||
"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
|
||||
"markup.link.text" = "blue"
|
||||
"markup.raw" = "flamingo"
|
||||
|
||||
"diff.plus" = "green"
|
||||
"diff.minus" = "red"
|
||||
"diff.delta" = "blue"
|
||||
|
||||
# User Interface
|
||||
# --------------
|
||||
|
||||
# fix issue with background color getting messed up in tmux...
|
||||
"ui.background" = { }
|
||||
# "ui.background" = { fg = "text", bg = "base" }
|
||||
|
||||
"ui.linenr" = { fg = "surface1" }
|
||||
"ui.linenr.selected" = { fg = "lavender" }
|
||||
|
||||
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
|
||||
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
|
||||
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
|
||||
|
||||
"ui.popup" = { fg = "text", bg = "surface0" }
|
||||
"ui.window" = { fg = "crust" }
|
||||
"ui.help" = { fg = "overlay2", bg = "surface0" }
|
||||
|
||||
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
|
||||
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
|
||||
"ui.bufferline.background" = { bg = "crust" }
|
||||
|
||||
"ui.text" = "text"
|
||||
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
|
||||
"ui.text.inactive" = { fg = "overlay1" }
|
||||
|
||||
"ui.virtual" = "overlay0"
|
||||
"ui.virtual.ruler" = { bg = "surface0" }
|
||||
"ui.virtual.indent-guide" = "surface0"
|
||||
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
|
||||
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
|
||||
|
||||
"ui.selection" = { bg = "surface1" }
|
||||
|
||||
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
|
||||
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
|
||||
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
|
||||
|
||||
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
|
||||
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
|
||||
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
|
||||
|
||||
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
|
||||
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
|
||||
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
|
||||
|
||||
"ui.cursorline.primary" = { bg = "cursorline" }
|
||||
|
||||
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"ui.menu" = { fg = "overlay2", bg = "surface0" }
|
||||
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
|
||||
|
||||
error = "red"
|
||||
warning = "yellow"
|
||||
info = "sky"
|
||||
hint = "teal"
|
||||
|
||||
[palette]
|
||||
rosewater = "#f4dbd6"
|
||||
flamingo = "#f0c6c6"
|
||||
pink = "#f5bde6"
|
||||
mauve = "#c6a0f6"
|
||||
red = "#ed8796"
|
||||
maroon = "#ee99a0"
|
||||
peach = "#f5a97f"
|
||||
yellow = "#eed49f"
|
||||
green = "#a6da95"
|
||||
teal = "#8bd5ca"
|
||||
sky = "#91d7e3"
|
||||
sapphire = "#7dc4e4"
|
||||
blue = "#8aadf4"
|
||||
lavender = "#b7bdf8"
|
||||
text = "#cad3f5"
|
||||
subtext1 = "#b8c0e0"
|
||||
subtext0 = "#a5adcb"
|
||||
overlay2 = "#939ab7"
|
||||
overlay1 = "#8087a2"
|
||||
overlay0 = "#6e738d"
|
||||
surface2 = "#5b6078"
|
||||
surface1 = "#494d64"
|
||||
surface0 = "#363a4f"
|
||||
base = "#24273a"
|
||||
mantle = "#1e2030"
|
||||
crust = "#181926"
|
||||
|
||||
cursorline = "#303347"
|
||||
secondary_cursor = "#b6a6a7"
|
||||
secondary_cursor_normal = "#8b91bf"
|
||||
secondary_cursor_insert = "#80a57a"
|
||||
@@ -0,0 +1,156 @@
|
||||
# Syntax highlighting
|
||||
# -------------------
|
||||
"attribute" = "yellow"
|
||||
|
||||
"type" = "yellow"
|
||||
"type.enum.variant" = "teal"
|
||||
|
||||
"constructor" = "sapphire"
|
||||
|
||||
"constant" = "peach"
|
||||
"constant.character" = "teal"
|
||||
"constant.character.escape" = "pink"
|
||||
|
||||
"string" = "green"
|
||||
"string.regexp" = "pink"
|
||||
"string.special" = "blue"
|
||||
"string.special.symbol" = "red"
|
||||
|
||||
"comment" = { fg = "overlay2", modifiers = ["italic"] }
|
||||
|
||||
"variable" = "text"
|
||||
"variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
|
||||
"variable.builtin" = "red"
|
||||
"variable.other.member" = "teal"
|
||||
|
||||
"label" = "sapphire" # used for lifetimes
|
||||
|
||||
"punctuation" = "overlay2"
|
||||
"punctuation.special" = "sky"
|
||||
|
||||
"keyword" = "mauve"
|
||||
"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
|
||||
|
||||
"operator" = "sky"
|
||||
|
||||
"function" = "blue"
|
||||
"function.macro" = "mauve"
|
||||
|
||||
"tag" = "blue"
|
||||
|
||||
"namespace" = { fg = "yellow", modifiers = ["italic"] }
|
||||
|
||||
"special" = "blue" # fuzzy highlight
|
||||
|
||||
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
|
||||
"markup.heading.1" = "lavender"
|
||||
"markup.heading.2" = "mauve"
|
||||
"markup.heading.3" = "green"
|
||||
"markup.heading.4" = "yellow"
|
||||
"markup.heading.5" = "pink"
|
||||
"markup.heading.6" = "teal"
|
||||
"markup.list" = "mauve"
|
||||
"markup.bold" = { modifiers = ["bold"] }
|
||||
"markup.italic" = { modifiers = ["italic"] }
|
||||
"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
|
||||
"markup.link.text" = "blue"
|
||||
"markup.raw" = "flamingo"
|
||||
|
||||
"diff.plus" = "green"
|
||||
"diff.minus" = "red"
|
||||
"diff.delta" = "blue"
|
||||
|
||||
# User Interface
|
||||
# --------------
|
||||
"ui.background" = { fg = "text", bg = "base" }
|
||||
|
||||
"ui.linenr" = { fg = "surface1" }
|
||||
"ui.linenr.selected" = { fg = "lavender" }
|
||||
|
||||
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
|
||||
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
|
||||
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
|
||||
|
||||
"ui.popup" = { fg = "text", bg = "surface0" }
|
||||
"ui.window" = { fg = "crust" }
|
||||
"ui.help" = { fg = "overlay2", bg = "surface0" }
|
||||
|
||||
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
|
||||
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
|
||||
"ui.bufferline.background" = { bg = "crust" }
|
||||
|
||||
"ui.text" = "text"
|
||||
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
|
||||
"ui.text.inactive" = { fg = "overlay1" }
|
||||
|
||||
"ui.virtual" = "overlay0"
|
||||
"ui.virtual.ruler" = { bg = "surface0" }
|
||||
"ui.virtual.indent-guide" = "surface0"
|
||||
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
|
||||
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
|
||||
|
||||
"ui.selection" = { bg = "surface1" }
|
||||
|
||||
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
|
||||
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
|
||||
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
|
||||
|
||||
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
|
||||
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
|
||||
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
|
||||
|
||||
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
|
||||
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
|
||||
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
|
||||
|
||||
"ui.cursorline.primary" = { bg = "cursorline" }
|
||||
|
||||
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"ui.menu" = { fg = "overlay2", bg = "surface0" }
|
||||
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
|
||||
|
||||
error = "red"
|
||||
warning = "yellow"
|
||||
info = "sky"
|
||||
hint = "teal"
|
||||
|
||||
[palette]
|
||||
rosewater = "#f5e0dc"
|
||||
flamingo = "#f2cdcd"
|
||||
pink = "#f5c2e7"
|
||||
mauve = "#cba6f7"
|
||||
red = "#f38ba8"
|
||||
maroon = "#eba0ac"
|
||||
peach = "#fab387"
|
||||
yellow = "#f9e2af"
|
||||
green = "#a6e3a1"
|
||||
teal = "#94e2d5"
|
||||
sky = "#89dceb"
|
||||
sapphire = "#74c7ec"
|
||||
blue = "#89b4fa"
|
||||
lavender = "#b4befe"
|
||||
text = "#cdd6f4"
|
||||
subtext1 = "#bac2de"
|
||||
subtext0 = "#a6adc8"
|
||||
overlay2 = "#9399b2"
|
||||
overlay1 = "#7f849c"
|
||||
overlay0 = "#6c7086"
|
||||
surface2 = "#585b70"
|
||||
surface1 = "#45475a"
|
||||
surface0 = "#313244"
|
||||
base = "#1e1e2e"
|
||||
mantle = "#181825"
|
||||
crust = "#11111b"
|
||||
|
||||
cursorline = "#2a2b3c"
|
||||
secondary_cursor = "#b5a6a8"
|
||||
secondary_cursor_normal = "#878ec0"
|
||||
secondary_cursor_insert = "#7ea87f"
|
||||
@@ -0,0 +1,156 @@
|
||||
# Syntax highlighting
|
||||
# -------------------
|
||||
"attribute" = "yellow"
|
||||
|
||||
"type" = "yellow"
|
||||
"type.enum.variant" = "teal"
|
||||
|
||||
"constructor" = "sapphire"
|
||||
|
||||
"constant" = "peach"
|
||||
"constant.character" = "teal"
|
||||
"constant.character.escape" = "pink"
|
||||
|
||||
"string" = "green"
|
||||
"string.regexp" = "pink"
|
||||
"string.special" = "blue"
|
||||
"string.special.symbol" = "red"
|
||||
|
||||
"comment" = { fg = "overlay2" }
|
||||
|
||||
"variable" = "text"
|
||||
"variable.parameter" = { fg = "maroon" }
|
||||
"variable.builtin" = "red"
|
||||
"variable.other.member" = "teal"
|
||||
|
||||
"label" = "sapphire" # used for lifetimes
|
||||
|
||||
"punctuation" = "overlay2"
|
||||
"punctuation.special" = "sky"
|
||||
|
||||
"keyword" = "mauve"
|
||||
"keyword.control.conditional" = { fg = "mauve" }
|
||||
|
||||
"operator" = "sky"
|
||||
|
||||
"function" = "blue"
|
||||
"function.macro" = "mauve"
|
||||
|
||||
"tag" = "blue"
|
||||
|
||||
"namespace" = { fg = "yellow" }
|
||||
|
||||
"special" = "blue" # fuzzy highlight
|
||||
|
||||
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
|
||||
"markup.heading.1" = "lavender"
|
||||
"markup.heading.2" = "mauve"
|
||||
"markup.heading.3" = "green"
|
||||
"markup.heading.4" = "yellow"
|
||||
"markup.heading.5" = "pink"
|
||||
"markup.heading.6" = "teal"
|
||||
"markup.list" = "mauve"
|
||||
"markup.bold" = { modifiers = ["bold"] }
|
||||
"markup.italic" = { modifiers = ["italic"] }
|
||||
"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
|
||||
"markup.link.text" = "blue"
|
||||
"markup.raw" = "flamingo"
|
||||
|
||||
"diff.plus" = "green"
|
||||
"diff.minus" = "red"
|
||||
"diff.delta" = "blue"
|
||||
|
||||
# User Interface
|
||||
# --------------
|
||||
"ui.background" = { fg = "text", bg = "base" }
|
||||
|
||||
"ui.linenr" = { fg = "surface1" }
|
||||
"ui.linenr.selected" = { fg = "lavender" }
|
||||
|
||||
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
|
||||
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
|
||||
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
|
||||
|
||||
"ui.popup" = { fg = "text", bg = "surface0" }
|
||||
"ui.window" = { fg = "crust" }
|
||||
"ui.help" = { fg = "overlay2", bg = "surface0" }
|
||||
|
||||
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
|
||||
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
|
||||
"ui.bufferline.background" = { bg = "crust" }
|
||||
|
||||
"ui.text" = "text"
|
||||
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
|
||||
"ui.text.inactive" = { fg = "overlay1" }
|
||||
|
||||
"ui.virtual" = "overlay0"
|
||||
"ui.virtual.ruler" = { bg = "surface0" }
|
||||
"ui.virtual.indent-guide" = "surface0"
|
||||
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
|
||||
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
|
||||
|
||||
"ui.selection" = { bg = "surface1" }
|
||||
|
||||
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
|
||||
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
|
||||
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
|
||||
|
||||
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
|
||||
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
|
||||
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
|
||||
|
||||
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
|
||||
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
|
||||
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
|
||||
|
||||
"ui.cursorline.primary" = { bg = "cursorline" }
|
||||
|
||||
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"ui.menu" = { fg = "overlay2", bg = "surface0" }
|
||||
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
|
||||
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
|
||||
|
||||
error = "red"
|
||||
warning = "yellow"
|
||||
info = "sky"
|
||||
hint = "teal"
|
||||
|
||||
[palette]
|
||||
rosewater = "#f2d5cf"
|
||||
flamingo = "#eebebe"
|
||||
pink = "#f4b8e4"
|
||||
mauve = "#ca9ee6"
|
||||
red = "#e78284"
|
||||
maroon = "#ea999c"
|
||||
peach = "#ef9f76"
|
||||
yellow = "#e5c890"
|
||||
green = "#a6d189"
|
||||
teal = "#81c8be"
|
||||
sky = "#99d1db"
|
||||
sapphire = "#85c1dc"
|
||||
blue = "#8caaee"
|
||||
lavender = "#babbf1"
|
||||
text = "#c6d0f5"
|
||||
subtext1 = "#b5bfe2"
|
||||
subtext0 = "#a5adce"
|
||||
overlay2 = "#949cbb"
|
||||
overlay1 = "#838ba7"
|
||||
overlay0 = "#737994"
|
||||
surface2 = "#626880"
|
||||
surface1 = "#51576d"
|
||||
surface0 = "#414559"
|
||||
base = "#303446"
|
||||
mantle = "#292c3c"
|
||||
crust = "#232634"
|
||||
|
||||
cursorline = "#3b3f52"
|
||||
secondary_cursor = "#b8a5a6"
|
||||
secondary_cursor_normal = "#9192be"
|
||||
secondary_cursor_insert = "#83a275"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user