diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/.stow-local-ignore b/.stow-local-ignore new file mode 100644 index 0000000..2d2ecd6 --- /dev/null +++ b/.stow-local-ignore @@ -0,0 +1 @@ +.git/ diff --git a/bat/.config/bat/config b/bat/.config/bat/config new file mode 100644 index 0000000..61d1af4 --- /dev/null +++ b/bat/.config/bat/config @@ -0,0 +1,17 @@ +--italic-text=always +--decorations=never +--color=always + +# Uncomment the following line to disable automatic paging: +#--paging=never + +# Uncomment the following line if you are using less version >= 551 and want to +# enable mouse scrolling support in `bat` when running inside tmux. This might +# disable text selection, unless you press shift. +#--pager="--RAW-CONTROL-CHARS --quit-if-one-screen --mouse" + +# Syntax mappings: map a certain filename pattern to a language. +# Example 1: use the C++ syntax for .ino files +# Example 2: Use ".gitignore"-style highlighting for ".ignore" files +--map-syntax "*.ino:C++" +--map-syntax ".ignore:Git Ignore" diff --git a/btop/.config/btop/btop.conf b/btop/.config/btop/btop.conf new file mode 100644 index 0000000..d087def --- /dev/null +++ b/btop/.config/btop/btop.conf @@ -0,0 +1,248 @@ +#? Config file for btop v. 1.4.0 + +#* 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 = "rose-pine" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = False + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "net cpu mem proc" + +#* 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 = "name" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: 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 = True + +#* 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 = True + +#* 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 = "" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = True + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/btop/.config/btop/themes/rose-pine.theme b/btop/.config/btop/themes/rose-pine.theme new file mode 100644 index 0000000..b045441 --- /dev/null +++ b/btop/.config/btop/themes/rose-pine.theme @@ -0,0 +1,119 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#191724" +# Base + +# Main text color +theme[main_fg]="#e0def4" +# Text + +# Title color for boxes +theme[title]="#908caa" +# Subtle + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#e0def4" +# Text + +# Background color of selected item in processes box +theme[selected_bg]="#524f67" +# HL High + +# Foreground color of selected item in processes box +theme[selected_fg]="#f6c177" +# Gold + +# Color of inactive/disabled text +theme[inactive_fg]="#403d52" +# HL Med + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#9ccfd8" +# Foam + +# Background color of the percentage meters +theme[meter_bg]="#9ccfd8" +# Foam + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#c4a7e7" +# Iris + +# Cpu box outline color +theme[cpu_box]="#ebbcba" +# Rose + +# Memory/disks box outline color +theme[mem_box]="#31748f" +# Pine + +# Net up/down box outline color +theme[net_box]="#c4a7e7" +# Iris + +# Processes box outline color +theme[proc_box]="#eb6f92" +# Love + +# Box divider line and small boxes line color +theme[div_line]="#6e6a86" +# Muted + +# Temperature graph colors +theme[temp_start]="#ebbcba" +# Rose +theme[temp_mid]="#f6c177" +# Gold +theme[temp_end]="#eb6f92" +# Love + +# CPU graph colors +theme[cpu_start]="#f6c177" +# Gold +theme[cpu_mid]="#ebbcba" +# Rose +theme[cpu_end]="#eb6f92" +# Love + +# Mem/Disk free meter +# all love +theme[free_start]="#eb6f92" +theme[free_mid]="#eb6f92" +theme[free_end]="#eb6f92" + +# Mem/Disk cached meter +# all iris +theme[cached_start]="#c4a7e7" +theme[cached_mid]="#c4a7e7" +theme[cached_end]="#c4a7e7" + +# Mem/Disk available meter +# all pine +theme[available_start]="#31748f" +theme[available_mid]="#31748f" +theme[available_end]="#31748f" + +# Mem/Disk used meter +# all rose +theme[used_start]="#ebbcba" +theme[used_mid]="#ebbcba" +theme[used_end]="#ebbcba" + +# Download graph colors +# Pine for start, foam for the rest +theme[download_start]="#31748f" +theme[download_mid]="#9ccfd8" +theme[download_end]="#9ccfd8" + +# Upload graph colors +theme[upload_start]="#ebbcba" +# Rose for start +theme[upload_mid]="#eb6f92" +# Love for mid and end +theme[upload_end]="#eb6f92" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#31748f" +# Pine +theme[process_mid]="#9ccfd8" +# Foam for mid and end +theme[process_end]="#9ccfd8" diff --git a/cava/.config/cava/config b/cava/.config/cava/config new file mode 100644 index 0000000..7f3f41c --- /dev/null +++ b/cava/.config/cava/config @@ -0,0 +1,279 @@ +## Configuration file for CAVA. +# Remove the ; to change parameters. + + +[general] + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal + +# Accepts only non-negative values. +; framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 1 +; overshoot = 20 + +# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. +# 200 means double height. Accepts only non-negative values. +; sensitivity = 100 + +# The number of bars (0-512). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. +; bars = 0 +; bar_width = 2 +; bar_spacing = 1 +# bar_height is only used for output in "noritake" format +; bar_height = 32 + +# For SDL width and space between bars is in pixels, defaults are: +; bar_width = 20 +; bar_spacing = 5 + +# sdl_glsl have these default values, they are only used to calulate max number of bars. +; bar_width = 1 +; bar_spacing = 0 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff if a too low band is specified. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + +# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and +# only check for input once per second. Cava will wake up once input is detected. 0 = disable. +; sleep_timer = 0 + + +[input] + +# Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem' +# Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with. +# On Mac it defaults to 'portaudio' or 'fifo' +# On windows this is automatic and no input settings are needed. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For pipewire 'source' will be the object name or object.serial of the device to capture from. +# Both input and output devices are supported. +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address +# +# For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'. +# README.md contains further information on how to setup CAVA for sndio. +# +# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device. +# README.md contains further information on how to setup CAVA for OSS on FreeBSD. +# +# For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'. +# README.md contains further information on how to setup CAVA for JACK. +# +; method = pulse +; source = auto + +; method = pipewire +; source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo + +; method = shmem +; source = /squeezelite-AA:BB:CC:DD:EE:FF + +; method = portaudio +; source = auto + +; method = sndio +; source = default + +; method = oss +; source = /dev/dsp + +; method = jack +; source = default + +# The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods: +# sample_rate: fifo, pipewire, sndio, oss +# sample_bits: fifo, pipewire, sndio, oss +# channels: sndio, oss, jack +# autoconnect: jack +# Other methods ignore these settings. +# +# For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported +# by the chosen audio device, the device will use other supported values instead. +# Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it +# will use 44100, 16 and 1. +# +; sample_rate = 44100 +; sample_bits = 16 +; channels = 2 +; autoconnect = 2 + + +[output] + +# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl' +# or 'sdl_glsl'. +# 'noncurses' (default) uses a buffer and cursor movements to only print +# changes from frame to frame in the terminal. Uses less resources and is less +# prone to tearing (vsync issues) than 'ncurses'. +# +# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data +# stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. +# +# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display +# in graphic mode. It only support the 3000 series graphical VFDs for now. +# +# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. +# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or +# use one of the predefined ones. +; method = noncurses + +# Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'. +# Default is 'bottom'. Other orientations are only supported on sdl and ncruses +# output. Note: many fonts have weird glyphs for 'top' and 'right' characters, +# which can make ncurses not look right. +; orientation = bottom + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' outputs left to right lowest to highest frequencies. +# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. +# set 'reverse' to 1 to display frequencies the other way around. +; channels = stereo +; mono_option = average +; reverse = 0 + +# Raw output target. A fifo will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + +# sdl window size and position. -1,-1 is centered. +; sdl_width = 1000 +; sdl_height = 500 +; sdl_x = -1 +; sdl_y= -1 +; sdl_full_screen = 0 + +# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none' +# 'frequency' displays the lower cut off frequency of the bar above. +# Only supported on ncurses and noncurses output. +; xaxis = none + +# enable alacritty synchronized updates. 1 = on, 0 = off +# removes flickering in alacritty terminal emulator. +# defaults to off since the behaviour in other terminal emulators is unknown +; alacritty_sync = 0 + +# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders +; vertex_shader = pass_through.vert +; fragment_shader = bar_spectrum.frag + +; for glsl output mode, keep rendering even if no audio +; continuous_rendering = 0 + +# disable console blank (screen saver) in tty +# (Not supported on FreeBSD) +; disable_blanking = 0 + +# show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off +; show_idle_bar_heads = 1 + +# show waveform instead of frequency spectrum, 1 = on, 0 = off +; waveform = 0 + +[color] + +# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. +# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires +# a terminal that can change color definitions such as Gnome-terminal or rxvt. +# default is to keep current terminal color +; background = default +; foreground = default + +# SDL and sdl_glsl only support hex code colors, these are the default: +; background = '#111111' +; foreground = '#33ffff' + + +# Gradient mode, only hex defined colors are supported, +# background must also be defined in hex or remain commented out. 1 = on, 0 = off. +# You can define as many as 8 different colors. They range from bottom to top of screen +; gradient = 0 +; gradient_count = 8 +; gradient_color_1 = '#59cc33' +; gradient_color_2 = '#80cc33' +; gradient_color_3 = '#a6cc33' +; gradient_color_4 = '#cccc33' +; gradient_color_5 = '#cca633' +; gradient_color_6 = '#cc8033' +; gradient_color_7 = '#cc5933' +; gradient_color_8 = '#cc3333' + + + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +# DEPRECATED as of 0.8.0, use noise_reduction instead +; integral = 77 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +; monstercat = 0 +; waves = 0 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". +# DEPRECATED as of 0.8.0, use noise_reduction instead +; gravity = 100 + + +# In bar height, bars that would have been lower that this will not be drawn. +# DEPRECATED as of 0.8.0 +; ignore = 0 + +# Noise reduction, int 0 - 100. default 77 +# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth +# 100 will be very slow and smooth, 0 will be fast but noisy. +; noise_reduction = 77 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more than one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +; 1 = 1 # bass +; 2 = 1 +; 3 = 1 # midtone +; 4 = 1 +; 5 = 1 # treble diff --git a/git/.gitconfig b/git/.gitconfig new file mode 100644 index 0000000..669d0f1 --- /dev/null +++ b/git/.gitconfig @@ -0,0 +1,20 @@ +[user] + name = wzykubek + email = wz-git@mailbox.org + signingkey = ~/.ssh/id_rsa +[gpg] + format = ssh +[format] + pretty = oneline +[log] + abbrevCommit = true +[diff] + tool = kitty + guitool = kitty.gui +[difftool] + prompt = false + trustExitCode = true +[difftool "kitty"] + cmd = kitten diff $LOCAL $REMOTE +[difftool "kitty.gui"] + cmd = kitten diff $LOCAL $REMOTE diff --git a/hypr/.config/hypr/hyprland.conf b/hypr/.config/hypr/hyprland.conf new file mode 100644 index 0000000..4515093 --- /dev/null +++ b/hypr/.config/hypr/hyprland.conf @@ -0,0 +1,279 @@ +# vim:ft=hyprlang:foldmethod=marker:shiftwidth=2 + +#: Monitors {{{ + +monitor=,preferred,auto,auto + +#: }}} + +#: Programs {{{ + +$terminal = kitty +$fileManager = kitty -e yazi +$menu = rofi -show drun +$browser = zen-browser + +#: }}} + +#: Autostart {{{ + +exec-once = hyprpaper & mako & waybar & kdeconnect-indicator +exec-once = wl-paste --watch cliphist store +exec-once = $browser + +#: }}} + +#: Environment variables {{{ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +#: }}} + +#: Look and feel {{{ + +# Colors +source=rose-pine.conf + +general { + gaps_in = 5 + gaps_out = 12 + + border_size = 2 + col.active_border = $rose $pine $love $iris 90deg + col.inactive_border = $muted + resize_on_border = true + + allow_tearing = false + + layout = master +} + +decoration { + rounding = 20 + + active_opacity = 1.0 + inactive_opacity = 1.0 + + drop_shadow = true + shadow_range = 15 + shadow_render_power = 10 + col.shadow = rgba(1a1a1aee) + + blur { + enabled = true + size = 4 + passes = 3 + vibrancy = 0.1696 + xray = true + # popups = true + } + + dim_special = 0.3 +} + +animations { + enabled = true + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + bezier = linear, 0.0, 0.0, 1.0, 1.0 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + #animation = border, 1, 10, default + animation = borderangle, 1, 100, linear, loop + #animation = fade, 1, 7, default + animation = workspaces, 1, 6, default + animation = layers, 1, 3, default, slide +} + +layerrule = animation slide top, rofi + +master { + new_status = master + new_on_top = true +} + +dwindle { + pseudotile = true # Master switch for pseudotiling + preserve_split = true # You probably want this + default_split_ratio = 1.1 + force_split = 2 +} + +misc { + font_family = $font + animate_manual_resizes = true + + # Disable anime girls + force_default_wallpaper = -1 + disable_hyprland_logo = true +} + +#: }}} + +#: Input {{{ +input { + kb_layout = pl + kb_variant = + kb_model = chromebook + kb_options = + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + } +} + +gestures { + workspace_swipe = true +} + +# Can't specify multiple or wildcard... +device { + name = sino-wealth-gaming-kb--mouse + kb_model = +} +device { + name = sino-wealth-gaming-kb--consumer-control-1 + kb_model = +} +device { + name = sino-wealth-gaming-kb--system-control + kb_model = +} +device { + name = sino-wealth-gaming-kb- + kb_model = +} +device { + name = sino-wealth-gaming-kb--consumer-control + kb_model = +} +device { + name = sino-wealth-gaming-kb--keyboard + kb_model = +} + +#: }}} + +#: Bindings {{{ + +$mainMod = SUPER +bind = $mainMod, Q, killactive +bind = $mainMod, F, togglefloating +bind = $mainMod, RETURN, layoutmsg, swapwithmaster master + +# Tasks +bind = $mainMod, P, exec, /home/wiktor/.local/bin/scripts/powermenu +bind = $mainMod SHIFT, S, exec, /home/wiktor/.local/bin/scripts/screenshot + +# Apps +bind = $mainMod, T, exec, $terminal +bind = $mainMod, R, exec, $menu +bind = $mainMod, B, exec, $browser +bind = $mainMod, E, exec, $fileManager + +# Move focus +bind = $mainMod, H, movefocus, l +bind = $mainMod, J, movefocus, d +bind = $mainMod, K, movefocus, u +bind = $mainMod, L, movefocus, r + +# Move/resize windows with mouse +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Resize active window +bind = $mainMod ALT, H, resizeactive, -15 0 +bind = $mainMod ALT, J, resizeactive, 0 15 +bind = $mainMod ALT, K, resizeactive, 0 -15 +bind = $mainMod ALT, L, resizeactive, 15 0 + +# Switch workspaces +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move active window to a workspace +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod ALT, S, movetoworkspace, special:magic + +# Multimedia keys +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +#: }}} + +#: Rules {{{ +# Force opacity +windowrule = opacity 0.89, ^(kitty)$ + +# Force blur +layerrule = blur, rofi # rofi +layerrule = ignorezero, rofi +layerrule = blur, waybar # waybar +layerrule = ignorezero, waybar +layerrule = blur, notifications # mako +layerrule = ignorezero, notifications + +# Float +windowrule = float, ^(com.saivert.pwvucontrol)$ + +# Tile +windowrule = tile, ^(ableton live 12 suite.exe)$ + +# Ignore maximize requests from apps. You'll probably like this. +windowrulev2 = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 + +# Scratchpad +workspace = special:magic, gapsout:100, on-created-empty:kitty +# workspace = 1, name:terminal +# workspace = 2, name:browser + +# Force workspace +windowrule = workspace 1, ^(kitty)$ +windowrule = workspace 2 silent, ^(zen-alpha)$ +#: }}} diff --git a/hypr/.config/hypr/hyprlock.conf b/hypr/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..243b01d --- /dev/null +++ b/hypr/.config/hypr/hyprlock.conf @@ -0,0 +1,25 @@ +source=rose-pine.conf + +general { + disable_loading_bar = true + hide_cursor = true +} + +background { + path = /home/wiktor/Pictures/wallpapers/1920x1080/rose_pine_shape.png + + blur_passes = 3 + blur_size = 4 + vibrancy = 0.1696 +} + +label { + text = $TIME + color = $text + font_family = $font ExtraBold + font_size = 40 + + position = 0, 80 + halign = center + valign = center +} diff --git a/hypr/.config/hypr/hyprpaper.conf b/hypr/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..3174cf2 --- /dev/null +++ b/hypr/.config/hypr/hyprpaper.conf @@ -0,0 +1,2 @@ +preload = /home/wiktor/Pictures/wallpapers/1920x1080/rose_pine_shape.png +wallpaper = , /home/wiktor/Pictures/wallpapers/1920x1080/rose_pine_shape.png diff --git a/hypr/.config/hypr/rose-pine.conf b/hypr/.config/hypr/rose-pine.conf new file mode 100644 index 0000000..c6d77fa --- /dev/null +++ b/hypr/.config/hypr/rose-pine.conf @@ -0,0 +1,21 @@ +# name: Rosé Pine +# author: jishnurajendran +# upstream: https://github.com/jishnurajendran/hyprland-rosepine/blob/main/rose-pine.conf +# All natural pine, faux fur and a bit of soho vibes for the classy minimalist +$base = 0xff191724 +$surface = 0xff1f1d2e +$overlay = 0xff26233a +$muted = 0xff6e6a86 +$subtle = 0xff908caa +$text = 0xffe0def4 +$love = 0xffeb6f92 +$gold = 0xfff6c177 +$rose = 0xffebbcba +$pine = 0xff31748f +$foam = 0xff9ccfd8 +$iris = 0xffc4a7e7 +$highlightLow = 0xff21202e +$highlightMed = 0xff403d52 +$highlightHigh = 0xff524f67 + +$font = JetBrainsMono Nerd Font diff --git a/kitty/.config/kitty/current-theme.conf b/kitty/.config/kitty/current-theme.conf new file mode 100644 index 0000000..a7c4c7b --- /dev/null +++ b/kitty/.config/kitty/current-theme.conf @@ -0,0 +1,52 @@ +## name: Rosé Pine +## author: mvllow +## license: MIT +## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf +## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist + +foreground #e0def4 +background #191724 +selection_foreground #e0def4 +selection_background #403d52 + +cursor #524f67 +cursor_text_color #e0def4 + +url_color #c4a7e7 + +active_tab_foreground #e0def4 +active_tab_background #26233a +inactive_tab_foreground #6e6a86 +inactive_tab_background #191724 + +# black +color0 #26233a +color8 #6e6a86 + +# red +color1 #eb6f92 +color9 #eb6f92 + +# green +color2 #31748f +color10 #31748f + +# yellow +color3 #f6c177 +color11 #f6c177 + +# blue +color4 #9ccfd8 +color12 #9ccfd8 + +# magenta +color5 #c4a7e7 +color13 #c4a7e7 + +# cyan +color6 #ebbcba +color14 #ebbcba + +# white +color7 #e0def4 +color15 #e0def4 diff --git a/kitty/.config/kitty/diff.conf b/kitty/.config/kitty/diff.conf new file mode 100644 index 0000000..13243ce --- /dev/null +++ b/kitty/.config/kitty/diff.conf @@ -0,0 +1,109 @@ +# vim:fileencoding=utf-8:ft=conf:foldmethod=marker + +#: Diffing {{{ + +syntax_aliases pyj:py recipe:py + +#: File extension aliases for syntax highlight For example, to syntax +#: highlight file.xyz as file.abc use a setting of xyz:abc + +num_context_lines 3 + +#: The number of lines of context to show around each change. + +diff_cmd auto + +#: The diff command to use. Must contain the placeholder _CONTEXT_ +#: which will be replaced by the number of lines of context. The +#: default is to search the system for either git or diff and use +#: that, if found. + +replace_tab_by \x20\x20\x20\x20 + +#: The string to replace tabs with. Default is to use four spaces. + +#: }}} + +#: Colors {{{ + +pygments_style github-dark + +#: The pygments color scheme to use for syntax highlighting. See +#: pygments colors schemes for +#: a list of schemes. + +foreground #EDDFAA +background #252322 + +#: Basic colors + +title_fg #EDDFAA +title_bg #2D2A28 + +#: Title colors + +margin_fg #48403A +margin_bg #2D2A28 + +#: Margin colors + +removed_bg #23090A +highlight_removed_bg #EB5864 +removed_margin_bg #37080B + +#: Removed text backgrounds + +added_bg #164113 +highlight_added_bg #16670B +added_margin_bg #16670B + +#: Added text backgrounds + +filler_bg #2D2A28 + +#: Filler (empty) line background + +hunk_margin_bg #FEC14E +hunk_bg #FEC14E + +#: Hunk header colors + +search_bg #FEC14E +search_fg black +select_bg #6F96FF +select_fg #252322 + +#: Highlighting + +#: }}} + +#: Keyboard shortcuts {{{ + +map q quit +map esc quit +map j scroll_by 1 +map down scroll_by 1 +map k scroll_by -1 +map up scroll_by -1 +map home scroll_to start +map end scroll_to end +map page_down scroll_to next-page +map space scroll_to next-page +map page_up scroll_to prev-page +map n scroll_to next-change +map p scroll_to prev-change +map a change_context all +map = change_context default +map + change_context 5 +map - change_context -5 +map / start_search regex forward +map ? start_search regex backward +map . scroll_to next-match +map > scroll_to next-match +map , scroll_to prev-match +map < scroll_to prev-match +map f start_search substring forward +map b start_search substring backward +#: }}} + + diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf new file mode 100644 index 0000000..71e78cb --- /dev/null +++ b/kitty/.config/kitty/kitty.conf @@ -0,0 +1,23 @@ +# vim:foldmethod=marker + +#: General {{{ + +allow_remote_control yes +cursor_trail 3 + +#: }}} + +#: Theme {{{ + +# BEGIN_KITTY_THEME +# Rosé Pine +include current-theme.conf +# END_KITTY_THEME + +#:}}} + +#: Bindings {{{ + +map ctrl+x clear_terminal scroll active + +#: }}} diff --git a/kitty/.config/kitty/open-actions.conf b/kitty/.config/kitty/open-actions.conf new file mode 100644 index 0000000..e5b58e6 --- /dev/null +++ b/kitty/.config/kitty/open-actions.conf @@ -0,0 +1,11 @@ +protocol file +fragment_matches [0-9]+ +action launch --type=overlay $EDITOR +$FRAGMENT $FILE_PATH + +protocol file +mime text/* +action launch --type=overlay $EDITOR $FILE_PATH + +protocol file +mime image/* +action launch --type=overlay kitten icat --hold -- $FILE_PATH diff --git a/mako/.config/mako/config b/mako/.config/mako/config new file mode 100644 index 0000000..9262d75 --- /dev/null +++ b/mako/.config/mako/config @@ -0,0 +1,19 @@ +font=JetBrainsMono Nerd Font 9 + +margin=12 +padding=10,0 +width=400 +border-radius=20 + +background-color=#191724cf +text-color=#e0def4 +progress-color=over #31748f + +[urgency=low] +border-color=#6e6a86 + +[urgency=normal] +border-color=#31748f + +[urgency=high] +border-color=#eb6f92 diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua new file mode 100644 index 0000000..0fda20c --- /dev/null +++ b/nvim/.config/nvim/init.lua @@ -0,0 +1,37 @@ +vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/" +vim.g.mapleader = " " + +-- bootstrap lazy and all plugins +local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" + +if not vim.uv.fs_stat(lazypath) then + local repo = "https://github.com/folke/lazy.nvim.git" + vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath } +end + +vim.opt.rtp:prepend(lazypath) + +local lazy_config = require "configs.lazy" + +-- load plugins +require("lazy").setup({ + { + "NvChad/NvChad", + lazy = false, + branch = "v2.5", + import = "nvchad.plugins", + }, + + { import = "plugins" }, +}, lazy_config) + +-- load theme +dofile(vim.g.base46_cache .. "defaults") +dofile(vim.g.base46_cache .. "statusline") + +require "options" +require "nvchad.autocmds" + +vim.schedule(function() + require "mappings" +end) diff --git a/nvim/.config/nvim/lua/chadrc.lua b/nvim/.config/nvim/lua/chadrc.lua new file mode 100644 index 0000000..45e0efe --- /dev/null +++ b/nvim/.config/nvim/lua/chadrc.lua @@ -0,0 +1,17 @@ +-- This file needs to have same structure as nvconfig.lua +-- https://github.com/NvChad/ui/blob/v3.0/lua/nvconfig.lua +-- Please read that file to know all available options :( + +---@type ChadrcConfig +local M = {} + +M.base46 = { + theme = "rosepine", + + hl_override = { + Comment = { italic = true }, + ["@comment"] = { italic = true }, + }, +} + +return M diff --git a/nvim/.config/nvim/lua/configs/conform.lua b/nvim/.config/nvim/lua/configs/conform.lua new file mode 100644 index 0000000..fb2281d --- /dev/null +++ b/nvim/.config/nvim/lua/configs/conform.lua @@ -0,0 +1,15 @@ +return { + formatters_by_ft = { + lua = { "stylua" }, + python = { "black" }, + css = { "prettier" }, + html = { "prettier" }, + jsonc = { "prettier" }, + }, + + -- format_on_save = { + -- -- These options will be passed to conform.format() + -- timeout_ms = 500, + -- lsp_fallback = true, + -- }, +} diff --git a/nvim/.config/nvim/lua/configs/lazy.lua b/nvim/.config/nvim/lua/configs/lazy.lua new file mode 100644 index 0000000..cd170bd --- /dev/null +++ b/nvim/.config/nvim/lua/configs/lazy.lua @@ -0,0 +1,47 @@ +return { + defaults = { lazy = true }, + install = { colorscheme = { "nvchad" } }, + + ui = { + icons = { + ft = "", + lazy = "󰂠 ", + loaded = "", + not_loaded = "", + }, + }, + + performance = { + rtp = { + disabled_plugins = { + "2html_plugin", + "tohtml", + "getscript", + "getscriptPlugin", + "gzip", + "logipat", + "netrw", + "netrwPlugin", + "netrwSettings", + "netrwFileHandlers", + "matchit", + "tar", + "tarPlugin", + "rrhelper", + "spellfile_plugin", + "vimball", + "vimballPlugin", + "zip", + "zipPlugin", + "tutor", + "rplugin", + "syntax", + "synmenu", + "optwin", + "compiler", + "bugreport", + "ftplugin", + }, + }, + }, +} diff --git a/nvim/.config/nvim/lua/configs/lspconfig.lua b/nvim/.config/nvim/lua/configs/lspconfig.lua new file mode 100644 index 0000000..a304036 --- /dev/null +++ b/nvim/.config/nvim/lua/configs/lspconfig.lua @@ -0,0 +1,24 @@ +-- load defaults i.e lua_lsp +require("nvchad.configs.lspconfig").defaults() + +local lspconfig = require "lspconfig" + +-- EXAMPLE +local servers = { "html", "cssls", "pyright" } +local nvlsp = require "nvchad.configs.lspconfig" + +-- lsps with default config +for _, lsp in ipairs(servers) do + lspconfig[lsp].setup { + on_attach = nvlsp.on_attach, + on_init = nvlsp.on_init, + capabilities = nvlsp.capabilities, + } +end + +-- configuring single server, example: typescript +-- lspconfig.ts_ls.setup { +-- on_attach = nvlsp.on_attach, +-- on_init = nvlsp.on_init, +-- capabilities = nvlsp.capabilities, +-- } diff --git a/nvim/.config/nvim/lua/mappings.lua b/nvim/.config/nvim/lua/mappings.lua new file mode 100644 index 0000000..783b78f --- /dev/null +++ b/nvim/.config/nvim/lua/mappings.lua @@ -0,0 +1,10 @@ +require "nvchad.mappings" + +-- add yours here + +local map = vim.keymap.set + +map("n", ";", ":", { desc = "CMD enter command mode" }) +map("i", "jk", "") + +-- map({ "n", "i", "v" }, "", " w ") diff --git a/nvim/.config/nvim/lua/options.lua b/nvim/.config/nvim/lua/options.lua new file mode 100644 index 0000000..fb1b953 --- /dev/null +++ b/nvim/.config/nvim/lua/options.lua @@ -0,0 +1,16 @@ +require("nvchad.options") + +-- add yours here! + +vim.filetype.add({ + extension = { rasi = "rasi" }, + pattern = { + [".*/hypr/.*%.conf"] = "hyprlang", + [".*/kitty/*.conf"] = "bash", + [".*/mako/config"] = "dosini", + [".*/tofi/config"] = "dosini", + }, +}) + +-- local o = vim.o +-- o.cursorlineopt ='both' -- to enable cursorline! diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..14a011c --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/init.lua @@ -0,0 +1,46 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + event = { "BufReadPre", "BufNewFile" }, + config = function() + local configs = require("nvim-treesitter.configs") + -- For some reason that I don't understand config won't load from `configs/` + configs.setup({ + ensure_installed = { + "vim", + "lua", + "vimdoc", + "html", + "css", + "rasi", + "hyprlang", + "jsonc", + "python", + "bash" + }, + sync_install = false, + highlight = { enable = true }, + indent = { enable = true }, + }) + end, + }, + { + "stevearc/conform.nvim", + -- event = 'BufWritePre', -- uncomment for format on save + opts = require("configs.conform"), + }, + + -- These are some examples, uncomment them if you want to see them work! + { + "neovim/nvim-lspconfig", + config = function() + require("configs.lspconfig") + end, + }, + + { + "glacambre/firenvim", + build = ":call firenvim#install(0)", + }, +} diff --git a/packages.txt b/packages.txt new file mode 100644 index 0000000..693e4a8 --- /dev/null +++ b/packages.txt @@ -0,0 +1,38 @@ +bat +brightnessctl +btop +cava +cliphist +curl +eza +fzf +git +hyprland +hyprlock +hyprpaper +imagemagick +jq +kitty-git +mako +mdcat +neovim +noto-fonts-cjk +pipewire +pipewire-alsa +pipewire-jack +pipewire-pulseaudio +pwvucontrol +rofi-wayland +rose-pine-cursor +rose-pine-gtk-theme +rose-pine-hyprcursor +stow +swayimg +ttf-jetbrains-mono-nerd +waybar +wayshot +wireplumber +wl-clipboard +xdg-desktop-portal-hyprland +yazi +zsh diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi new file mode 100644 index 0000000..487e6cc --- /dev/null +++ b/rofi/.config/rofi/config.rasi @@ -0,0 +1,40 @@ +@import "theme.rasi" + +configuration { + font: "JetBrainsMono Nerd Font 11"; + modes: "window,drun,run,ssh"; + fixed-num-lines: true; + show-icons: false; + drun-match-fields: "name,generic,exec,categories,keywords"; + drun-show-actions: false; + sort: true; + sorting-method: "fzf"; + case-sensitive: false; + cycle: true; + hover-select: true; + parse-hosts: true; + parse-known-hosts: false; + display-run: "cmd"; + display-ssh: "ssh"; + display-drun: "app"; + + kb-remove-to-eol: ""; + kb-element-next: ""; + kb-element-prev: ""; + + kb-accept-entry: "Return,KP_Enter"; + kb-mode-next: "Tab"; + kb-mode-previous: "ISO_Left_Tab"; + kb-row-up: "Up,Control+k"; + kb-row-down: "Down,Control+j"; + + timeout { + action: "kb-cancel"; + delay: 0; + } + + filebrowser { + directories-first: true; + sorting-method: "name"; + } +} diff --git a/rofi/.config/rofi/theme.rasi b/rofi/.config/rofi/theme.rasi new file mode 100644 index 0000000..aa39b52 --- /dev/null +++ b/rofi/.config/rofi/theme.rasi @@ -0,0 +1,140 @@ +* { + base:#191724; + bg:#191724cf; + surface: #1f1d2e; overlay: #26233a; + muted: #6e6a86; + subtle: #908caa; + text: #e0def4; + love: #eb6f92; + gold: #f6c177; + rose: #ebbcba; + pine: #31748f; + foam: #9ccfd8; + iris: #c4a7e7; + highlightLow: #21202e; + highlightMed: #403d52; + highlightHigh: #524f67; +} + +window { + width: 500; + y-offset: -34; + location: north; + padding: 0; + background-color: @bg; + border: 2; + border-color: @muted; + border-radius: 20; + children: [ + mode-switcher, + mainbox + ]; +} + +mode-switcher { + layout: vertical; + padding: 5 0; + border: 0 0 2; + border-color: @muted; + border-radius: 20; +} + +button { + background-color: transparent; + text-color: @highlightMed; +} + +button selected.normal { + background-color: transparent; + text-color: @rose; +} + +#mainbox { + padding: 0 0 10; + background-color: transparent; +} + +listview { + lines: 6; + columns: 1; + padding: 0; + margin: 0; + border: none; + scrollbar: false; +} + +element { + padding: 6 15; + margin: 0 10; +} + +element.normal.normal, element.alternate.normal { + background-color: transparent; + /*text-color: @highlightMed;*/ + text-color: @text; +} + +element { + border: 2; + border-color: transparent; + border-radius: 20; +} + +element.selected.normal { + border-color: @rose; + background-color: transparent; + text-color: @rose; +} + +element.normal.active, element.alternate.active { + border-color: @pine; + background-color: transparent; + text-color: @pine; +} + +element.selected.active { + border-color: @rose; + background-color: transparent; + text-color: @pine; +} + +inputbar { + padding: 10 25; + background-color: transparent; + children: [ + prompt, + textbox-prompt-colon, + entry, + num-filtered-rows, + textbox-num-sep, + num-rows + ]; +} + +prompt { + text-color: @pine; + font-weight: bold; +} + +textbox-prompt-colon { + text-color: @foam; + expand: false; + str: ":"; +} + +entry { + text-color: @text; + placeholder: ""; +} + +num-rows { + text-color: @iris; +} + +textbox-num-sep { + text-color: @foam; +} + +num-filtered-rows { + text-color: @gold; +} diff --git a/scripts/.local/bin/scripts/clipboard b/scripts/.local/bin/scripts/clipboard new file mode 100755 index 0000000..77fca94 --- /dev/null +++ b/scripts/.local/bin/scripts/clipboard @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +# Clipboard manager. + +cliphist list | rofi -dmenu -p "clipboard" | cliphist decode | wl-copy diff --git a/scripts/.local/bin/scripts/gethub b/scripts/.local/bin/scripts/gethub new file mode 100755 index 0000000..1761e28 --- /dev/null +++ b/scripts/.local/bin/scripts/gethub @@ -0,0 +1,12 @@ +#!/usr/bin/env sh + +# Autistic script for converting GitHub links to files and download it via wget. + +echo "$1" | sed ' + s/github.com/raw.githubusercontent.com/g; + s/blob//g + ' | xargs -r wget + +filename="$(echo "$1" | sed 's/.*\///g')" + +[ "$(sed 's/#\!\/.*/bang/g; 1q' "$filename")" = "bang" ] && chmod +x "$filename" diff --git a/scripts/.local/bin/scripts/iparu b/scripts/.local/bin/scripts/iparu new file mode 100755 index 0000000..cf27c67 --- /dev/null +++ b/scripts/.local/bin/scripts/iparu @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +# Interactive paru. + +paru -Slq | fzf -m --preview 'paru -Si {1}' --height 45% --reverse | paru -S - diff --git a/scripts/.local/bin/scripts/powermenu b/scripts/.local/bin/scripts/powermenu new file mode 100755 index 0000000..a09b8ec --- /dev/null +++ b/scripts/.local/bin/scripts/powermenu @@ -0,0 +1,14 @@ +#!/usr/bin/env sh + +# Power menu. + +WHAT="$(printf "lock\nsuspend\nlogout\nshutdown\nreboot" | rofi -dmenu -l 5 -p 'power')" +if [ -z "$WHAT" ]; then exit; fi + +case "$WHAT" in + "lock") hyprlock;; + "suspend") hyprlock & systemctl suspend;; + "logout") hyprctl dispatch exit;; + "shutdown") systemctl poweroff;; + "reboot") systemctl reboot +esac diff --git a/scripts/.local/bin/scripts/screenshot b/scripts/.local/bin/scripts/screenshot new file mode 100755 index 0000000..60acbbf --- /dev/null +++ b/scripts/.local/bin/scripts/screenshot @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +# Screenshot. + +path="$HOME/Pictures/screenshots/screenshot_$(date "+%H-%M-%S_%d-%m-%Y").png" +wayshot -f "$path" && notify-send "Screenshot created" "$path" diff --git a/scripts/.local/bin/scripts/scripts b/scripts/.local/bin/scripts/scripts new file mode 100755 index 0000000..964d0a7 --- /dev/null +++ b/scripts/.local/bin/scripts/scripts @@ -0,0 +1,18 @@ +#!/usr/bin/env sh + +# Menu with all scripts and descriptions. + +SCRIPTS_DIR="${HOME}/.local/bin/scripts/" + +filename="$( + head -n 3 $(find ${SCRIPTS_DIR} -maxdepth 1 -type f) | + sed 's/==> //g; s/<==//g; s/#!\/.*//g; /^$/d; s/# //g; s/.*\///g' | + awk '{printf (NR%2==0) ? "\t" $0 "\n" : $0}' | sort -r | + column -t -s $'\t' -o $'\t\t' | + fzf --preview "bat ${SCRIPTS_DIR}/{1}" --height 25 --layout reverse | + awk '{ print $1 }' +)" + +[ ! "$filename" ] && exit 0 + +$EDITOR "${SCRIPTS_DIR}/${filename}" diff --git a/ssh/.ssh/config b/ssh/.ssh/config new file mode 100644 index 0000000..57aa60e --- /dev/null +++ b/ssh/.ssh/config @@ -0,0 +1,10 @@ +Host tplink + HostName 192.168.1.1 + User root + +Host wyse + HostName 192.168.1.5 + User root + +Host * + IdentityFile ~/.ssh/id_rsa diff --git a/tofi/.config/tofi/config b/tofi/.config/tofi/config new file mode 100644 index 0000000..6c30d51 --- /dev/null +++ b/tofi/.config/tofi/config @@ -0,0 +1,15 @@ +font = "JetBrainsMono Nerd Font" + +padding-left = 35% +padding-top = 35% +width = 100% +height = 100% +border-width = 0 +outline-width = 0 +result-spacing = 25 +num-results = 5 +hide-cursor = true + +background-color = #191724CF +text-color =#6e6a86 +selection-color = #eb6f92 diff --git a/wallpapers/Pictures/wallpapers/1920x1080/rose_pine_shape.png b/wallpapers/Pictures/wallpapers/1920x1080/rose_pine_shape.png new file mode 100644 index 0000000..f826fd5 Binary files /dev/null and b/wallpapers/Pictures/wallpapers/1920x1080/rose_pine_shape.png differ diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc new file mode 100644 index 0000000..36cabdb --- /dev/null +++ b/waybar/.config/waybar/config.jsonc @@ -0,0 +1,113 @@ +{ + "layer": "top", + "position": "top", + "margin": "10 12 0", + "spacing": 10, + + "group/hardware": { + "orientation": "horizontal", + "modules": [ + "cpu", + "memory", + "temperature" + ] + }, + + "modules-left": [ + "clock", + "hyprland/workspaces" + ], + + "modules-right": [ + "tray", + "pulseaudio", + "network", + "group/hardware", + "backlight", + "battery" + ], + + "hyprland/workspaces": { + "active-only": false, + "all-outputs": true, + "format-icons": { + "1": " ", + "2": " ", + "3": "3", + "4": "4", + "5": "5", + "urgent": " ", + "focused": " ", + "default": " " + }, + "format": "{icon}", + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1" + }, + "tray": { + "spacing": 10 + }, + "clock": { + "format": "{:%H:%M  %d-%m  }", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}%  ", + "tooltip": false + }, + "memory": { + "format": "{}%  " + }, + "temperature": { + "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + "good": 80, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-full": "{capacity}% {icon}", + "format-charging": "{capacity}%  ", + "format-plugged": "{capacity}%  ", + "format-alt": "{time} {icon}", + "format-icons": [" ", " ", " ", " ", " "] + }, + "network": { + "format-wifi": "{ifname}  ", + "format-ethernet": "{ifname} 󰛳 ", + "tooltip-format": "{ifname} via {gwaddr}  ", + "format-linked": "{ifname} (No IP)  ", + "format-disconnected": "Disconnected ⚠ ", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + "scroll-step": 1, + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": " ", + "format-icons": { + "headphone": " ", + "hands-free": " ", + "headset": " ", + "phone": " ", + "portable": " ", + "car": " ", + "default": [" ", " ", " "] + }, + "on-click": "pwvucontrol" + }, + } +} diff --git a/waybar/.config/waybar/rose-pine.css b/waybar/.config/waybar/rose-pine.css new file mode 100644 index 0000000..a3ae0e4 --- /dev/null +++ b/waybar/.config/waybar/rose-pine.css @@ -0,0 +1,23 @@ +/* +* Variant: Rosé Pine +* Maintainer: DankChoir +*/ + +@define-color base #191724; +@define-color surface #1f1d2e; +@define-color overlay #26233a; + +@define-color muted #6e6a86; +@define-color subtle #908caa; +@define-color text #e0def4; + +@define-color love #eb6f92; +@define-color gold #f6c177; +@define-color rose #ebbcba; +@define-color pine #31748f; +@define-color foam #9ccfd8; +@define-color iris #c4a7e7; + +@define-color highlightLow #21202e; +@define-color highlightMed #403d52; +@define-color highlightHigh #524f67; diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css new file mode 100644 index 0000000..351f7a1 --- /dev/null +++ b/waybar/.config/waybar/style.css @@ -0,0 +1,106 @@ +@import "rose-pine.css"; + +* { + all: initial; + font-family: "JetBrainsMono Nerd Font"; + font-size: 12px; +} + +window#waybar { + background: transparent; +} + +tooltip { + background: @base; + border-radius: 20px; + border-width: 2px; + border-style: solid; + border-color: @overlay; +} + +#workspaces button { + border-radius: 20px; + padding: 0 10px; +} + +#workspaces button.active { + background: @highlightMed; +} + +#workspaces button.urgent { + background: @pine; + border-radius: 20px; +} + +#workspaces button:hover { + background: @highlightLow; +} + +#clock, +#workspaces, +#window, +#pulseaudio, +#network, +#tray, +#backlight, +#battery, +#hardware { + border: 2px solid @muted; + border-radius: 20px; + background-color: rgba(25, 23, 36, 0.81); + padding: 6px 15px; +} + +#cpu, #memory { + padding-right: 5px; + margin-right: 5px; + border-right: 1px solid @overlay; +} + +#memory { + color: @foam; +} + +#temperature { + color: @rose; +} + +#temperature.critical { + color: @love; +} + +#backlight { + color: @text; +} + +#custom-power_profile { + color: @foam; +} + +#window { + color: @foam; +} + +#clock { + color: @gold; +} + +#network { + color: @love; +} + +#bluetooth { + color: @gold; +} + +#pulseaudio { + color: @iris; +} + +#battery { + color: @foam; +} + +#custom-spotify { + min-width: 140px; +} diff --git a/yazi/.config/yazi/theme.toml b/yazi/.config/yazi/theme.toml new file mode 100644 index 0000000..ad35592 --- /dev/null +++ b/yazi/.config/yazi/theme.toml @@ -0,0 +1,138 @@ +# vim:fileencoding=utf-8:foldmethod=marker + +# : Manager {{{ + +[manager] +cwd = { fg = "#9ccfd8" } + +# Hovered +hovered = { fg = "#e0def4", bg = "#26233a" } +preview_hovered = { underline = true } + +# Find +find_keyword = { fg = "#f6c177", italic = true } +find_position = { fg = "#eb6f92", bg = "reset", italic = true } + +# Marker +marker_selected = { fg = "#9ccfd8", bg = "#9ccfd8" } +marker_copied = { fg = "#f6c177", bg = "#f6c177" } +marker_cut = { fg = "#B4637A", bg = "#B4637A" } + +# Tab +tab_active = { fg = "#e0def4", bg = "#191724" } +tab_inactive = { fg = "#e0def4", bg = "#2A273F" } +tab_width = 1 + +# Border +border_symbol = "│" +border_style = { fg = "#524f67" } + +# Highlighting +syntect_theme = "~/.config/yazi/rose-pine.tmTheme" + +# : }}} + +# : Status {{{ + +[status] +separator_open = "" +separator_close = "" +separator_style = { fg = "#2A273F", bg = "#2A273F" } + +# Mode +mode_normal = { fg = "#191724", bg = "#ebbcba", bold = true } +mode_select = { fg = "#e0def4", bg = "#9ccfd8", bold = true } +mode_unset = { fg = "#e0def4", bg = "#b4637a", bold = true } + +# Progress +progress_label = { fg = "#e0def4", bold = true } +progress_normal = { fg = "#191724", bg = "#2A273F" } +progress_error = { fg = "#B4637A", bg = "#2A273F" } + +# Permissions +permissions_t = { fg = "#31748f" } +permissions_r = { fg = "#f6c177" } +permissions_w = { fg = "#B4637A" } +permissions_x = { fg = "#9ccfd8" } +permissions_s = { fg = "#524f67" } + +# : }}} + +# : Input {{{ + +[input] +border = { fg = "#524f67" } +title = {} +value = {} +selected = { reversed = true } + +# : }}} + +# : Select {{{ + +[select] +border = { fg = "#524f67" } +active = { fg = "#eb6f92" } +inactive = {} + +# : }}} + +# : Tasks {{{ + +[tasks] +border = { fg = "#524f67" } +title = {} +hovered = { underline = true } + +# : }}} + +# : Which {{{ + +[which] +mask = { bg = "#313244" } +cand = { fg = "#9ccfd8" } +rest = { fg = "#9399b2" } +desc = { fg = "#eb6f92" } +separator = "  " +separator_style = { fg = "#585b70" } + +# : }}} + +# : Help {{{ + +[help] +on = { fg = "#eb6f92" } +exec = { fg = "#9ccfd8" } +desc = { fg = "#9399b2" } +hovered = { bg = "#585b70", bold = true } +footer = { fg = "#2A273F", bg = "#e0def4" } + +# : }}} + +# : File-specific styles {{{ + +[filetype] + +rules = [ + # Images + { mime = "image/*", fg = "#9ccfd8" }, + + # Videos + { mime = "video/*", fg = "#f6c177" }, + { mime = "audio/*", fg = "#f6c177" }, + + # Archives + { mime = "application/zip", fg = "#eb6f92" }, + { mime = "application/gzip", fg = "#eb6f92" }, + { mime = "application/x-tar", fg = "#eb6f92" }, + { mime = "application/x-bzip", fg = "#eb6f92" }, + { mime = "application/x-bzip2", fg = "#eb6f92" }, + { mime = "application/x-7z-compressed", fg = "#eb6f92" }, + { mime = "application/x-rar", fg = "#eb6f92" }, + + # Fallback + { name = "*", fg = "#e0def4" }, + { name = "*/", fg = "#524f67" }, +] + +# : }}} diff --git a/yazi/.config/yazi/yazi.toml b/yazi/.config/yazi/yazi.toml new file mode 100644 index 0000000..e69de29 diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..4769550 --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,118 @@ +# vim:foldmethod=marker + +#: General {{{ + +HISTFILE=~/.histfile +HISTSIZE=100000 +SAVEHIST=100000 +unsetopt beep +bindkey -v + +#: }}} + +#: Prompt {{{ + +autoload -Uz vcs_info +precmd() { vcs_info; echo -ne "\033]0;$(pwd | sed -e "s;^$HOME;~;")\a" } +zstyle ':vcs_info:*' check-for-changes true +zstyle ':vcs_info:*' unstagedstr '*' +zstyle ':vcs_info:*' stagedstr '+' +zstyle ':vcs_info:git:*' formats '%F{red}%b%f%F{yellow}%u%c%f ' +zstyle ':vcs_info:git:*' actionformats '(%b|%a%u%c)' + +setopt correct prompt_subst + +export PROMPT='%F{blue}%~%f ${vcs_info_msg_0_}%F{green}$%f ' + +command_not_found_handler() { + printf "\nahh shit, command not found\n\033[0;31m(╯°□°)╯︵ ┻━┻\n\n" + exit 127 +} + +#: }}} + +#: Aliases {{{ + +alias vim='nvim' +alias sudo='sudo ' +alias -g hrep='kitty +kitten hyperlinked_grep' +alias dotfiles='nvim +"cd $HOME/.dotfiles" +"NvimTreeFocus"' + +#: }}} + +#: Variables {{{ + +export PATH="$PATH:.:$HOME/.local/bin/scripts/" +export EDITOR='nvim' + +#: }}} + +#: Colors {{{ + +alias diff='diff --color=auto' +alias -g grep='grep --color=auto' +alias ip='ip -color=auto' +alias ls='eza --color=always --hyperlink' +alias -g cat='bat' +alias -g -- -h='-h 2>&1 | bat --language=help --style=plain' +alias -g -- --help='--help 2>&1 | bat --language=help --style=plain' +export LESS='-R --use-color -Dd+r$Du+b$' +export MANPAGER="sh -c 'col -bx | bat -l man -p'" + +# fzf +export FZF_DEFAULT_OPTS=" + --color=fg:#908caa,bg:#191724,hl:#ebbcba + --color=fg+:#e0def4,bg+:#26233a,hl+:#ebbcba + --color=border:#403d52,header:#31748f,gutter:#191724 + --color=spinner:#f6c177,info:#9ccfd8 + --color=pointer:#c4a7e7,marker:#eb6f92,prompt:#908caa" + +#: }}} + +#: Bindings {{{ + +# CTRL+P +iparu_run() { iparu; zle redisplay } +zle -N iparu_run +bindkey -M vicmd "^p" iparu_run +bindkey -M viins "^p" iparu_run + +# CTRL+E +yazi_run() { yazi; zle redisplay } +zle -N yazi_run +bindkey -M vicmd "^e" yazi_run +bindkey -M viins "^e" yazi_run + +#: }}} + +#: Completion {{{ + +fpath+=~/.zfunc + +zstyle ':completion:*' auto-description '%d' +zstyle ':completion:*' completer _complete _ignored #_approximate +zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} +zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]}' +# zstyle ':completion:*' menu select=2 search +zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s +zstyle ':completion:*' verbose true + +# fzf-tab +zstyle ':completion:*:git-checkout:*' sort false +zstyle ':completion:*:descriptions' format '[%d]' +zstyle ':completion:*' menu no +zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath' +zstyle ':fzf-tab:*' use-fzf-default-opts yes +zstyle ':fzf-tab:*' switch-group 'ctrl-h' 'ctrl-l' + +zstyle :compinstall filename '/home/wiktor/.zshrc' +autoload -Uz compinit; compinit + +#: }}} + +#: Plugins {{{ + +source ~/.local/share/zsh/plugins/fzf-tab/fzf-tab.zsh +source ~/.local/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh + +#: }}}