diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf new file mode 100644 index 0000000..30fe9dd --- /dev/null +++ b/.config/btop/btop.conf @@ -0,0 +1,212 @@ +#? Config file for btop v. 1.2.13 + +#* 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 = "/usr/share/btop/themes/gruvbox_dark_v2.theme" + +#* 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 = False + +#* 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 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", separate values with whitespace. +shown_boxes = "cpu mem net 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 = "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 + +#* 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 = "total" + +#* 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 = "total" + +#* 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 = 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 = "" + +#* 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" + +#* 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" diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf new file mode 100644 index 0000000..a2050ce --- /dev/null +++ b/.config/mpd/mpd.conf @@ -0,0 +1,35 @@ +# systemctl enable mpd.socket +# ln -s /home/$USER/.config/mpd/mpd.conf /etc + +# Files and directories ####################################################### + +music_directory "~/Audio/Music" +playlist_directory "~/.config/mpd/playlists" +db_file "~/.config/mpd/mpd.db" +state_file "~/.config/mpd/state" +sticker_file "~/.config/mpd/sticker.sql" + +############################################################################### + +# General music daemon options ################################################ + +#user "vale" +metadata_to_use "artist,album,title,track,name,genre,date" +auto_update "yes" +volume_normalization "yes" + +audio_output { + type "alsa" + name "ALSA sound card" +} + +############################################################################## + +# Visualiser ################################################################# +audio_output { + type "fifo" + name "my_fifo" + path "/tmp/mpd.fifo" + format "44100:16:2" +} + diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config new file mode 100644 index 0000000..0c05e5d --- /dev/null +++ b/.config/ncmpcpp/config @@ -0,0 +1,164 @@ +##### directories ###### +ncmpcpp_directory = ~/.config/ncmpcpp +lyrics_directory = ~/.lyrics + +##### connection settings ##### +mpd_host = localhost +mpd_port = 6600 +mpd_connection_timeout = 5 + +mpd_music_dir = ~/Audio/Music +mpd_crossfade_time = 0 + +##### music visualizer ##### +visualizer_data_source = "/tmp/mpd.fifo" +visualizer_output_name = "Visualizer feed" +visualizer_in_stereo = "yes" +visualizer_type = "ellipse" +visualizer_spectrum_smooth_look = yes +visualizer_color = blue, cyan, green, yellow, magenta, red +visualizer_autoscale = yes + +##### delays ##### +playlist_disable_highlight_delay = 0 + +##### song format ##### +## +## For a song format you can use: +## +## %l - length +## %f - filename +## %D - directory +## %a - artist +## %A - album artist +## %t - title +## %b - album +## %y - date +## %n - track number (01/12 -> 01) +## %N - full track info (01/12 -> 01/12) +## %g - genre +## %c - composer +## %p - performer +## %d - disc +## %C - comment +## %P - priority +## $R - begin right alignment +## +## If you want to make sure that a part of the format is displayed only when +## certain tags are present, you can archieve it by grouping them with brackets, +## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are +## present or '' otherwise. It is also possible to define a list of +## alternatives by providing several groups and separating them with '|', +## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is +## not present. +## +## Note: If you want to set limit on maximal length of a tag, just put the +## appropriate number between % and character that defines tag type, e.g. to +## make album take max. 20 terminal cells, use '%20b'. +## +## In addition, formats support markers used for text attributes. They are +## followed by character '$'. After that you can put: +## +## - 0 - default window color (discards all other colors) +## - 1 - black +## - 2 - red +## - 3 - green +## - 4 - yellow +## - 5 - blue +## - 6 - magenta +## - 7 - cyan +## - 8 - white +## - 9 - end of current color +## - b - bold text +## - u - underline text +## - r - reverse colors +## - a - use alternative character set +## +## If you don't want to use a non-color attribute anymore, just put it again, +## but this time insert character '/' between '$' and attribute character, +## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with +## reversed colors. +## +#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3%l$9} +#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f} +#song_library_format = {%n - }{%t}|{%f} +#alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b +#alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D} +#current_item_prefix = $(yellow)$r +#current_item_suffix = $/r$(end) +#current_item_inactive_column_prefix = $(white)$r +#current_item_inactive_column_suffix = $/r$(end) +#now_playing_prefix = $b +#now_playing_suffix = $/b +#browser_playlist_prefix = "$2playlist$9 " +#selected_item_prefix = $6 +#selected_item_suffix = $9 +#modified_item_prefix = $3> $9 +#song_window_title_format = {%a - }{%t}|{%f} +## +## Note: Below variables are used for sorting songs in browser. The sort mode +## determines how songs are sorted, and can be used in combination with a sort +## format to specify a custom sorting format. Available values for +## browser_sort_mode are "type", "name", "mtime", "format" and "none". +## +# +#browser_sort_mode = type +# +#browser_sort_format = {%a - }{%t}|{%f} {%l} +# +##### columns settings ##### +## +## syntax of song columns list format is "column column etc." +## +## - syntax for each column is: +## +## (width of the column)[color of the column]{displayed tag} +## +## Note: Width is by default in %, if you want a column to have fixed size, add +## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of +## screen (so the real width will depend on actual screen size), whereas +## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen +## is. +## +## - color is optional (if you want the default one, leave the field empty). +## +## Note: You can give a column additional attributes by putting appropriate +## character after displayed tag character. Available attributes are: +## +## - r - column will be right aligned +## - E - if tag is empty, empty tag marker won't be displayed +## +## You can also: +## +## - give a column custom name by putting it after attributes, separated with +## character ':', e.g. {lr:Length} gives you right aligned column of lengths +## named "Length". +## +## - define sequence of tags, that have to be displayed in case predecessor is +## empty in a way similar to the one in classic song format, i.e. using '|' +## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to +## display artist tag and then composer and performer if previous ones are not +## available. +## +# +#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l} +# +##### various settings ##### +playlist_show_remaining_time = yes +playlist_shorten_total_times = yes +## +## Note: You can specify third character which will be used to build 'empty' +## part of progressbar. +## +#progressbar_look = => +# +user_interface = alternative +startup_screen = media_library + +display_volume_level = no +ignore_leading_the = yes + +search_engine_default_search_mode = 2 + +external_editor = nvim +use_console_editor = yes diff --git a/.config/nvim/lua/keybinds.lua b/.config/nvim/lua/keybinds.lua index 96ac81c..ef393ec 100644 --- a/.config/nvim/lua/keybinds.lua +++ b/.config/nvim/lua/keybinds.lua @@ -12,6 +12,16 @@ map('i', '""', '""') map('i', "''", "''") map('i', '``', '``') +-- Move keys +map('n', '', 'h') +map('v', '', 'h') +map('n', '', 'j') +map('v', '', 'j') +map('n', '', 'k') +map('v', '', 'k') +map('n', '', 'l') +map('v', '', 'l') + -- -- COC -- diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/settings.lua index 19f77f6..3913275 100644 --- a/.config/nvim/lua/settings.lua +++ b/.config/nvim/lua/settings.lua @@ -24,11 +24,14 @@ o.wrap = false -- Configure colours o.termguicolors = true vim.cmd[[colorscheme srcery]] +vim.cmd([[highlight Normal ctermbg=none guibg=none]]) -- Spell Check o.spelllang = 'en_au' o.spell = true +-- Use System Keyboard +o.clipboard = 'unnamedplus' -- -- Plugin Config diff --git a/.config/sway/config b/.config/sway/config index 1ee848e..e13484b 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -5,7 +5,7 @@ set $mod Mod4 # Your variables set $term alacritty -set $fileman pcmanfm-qt +set $fileman $term -e vifm set $menu bemenu-run -p Search: -i -H 20 --fn "pango:Lexend Deca 9" --fb "$hard_black" --ff "$blue" --nb "$hard_black" --nf "$bright_white" --tb "$hard_black" --hb "$hard_black" --tf "$magenta" --hf "$magenta" --nf "$bright_white" --af "$bright_white" --ab "$hard_black" set $lock 'swaylock -F -f' @@ -110,16 +110,12 @@ input type:keyboard { bindsym $mod+r mode "resize" mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height bindsym Left resize shrink width 10px bindsym Shift+Left resize shrink width 20px - bindsym Down resize grow height 10px - bindsym Shift+Down resize grow height 20px - bindsym Up resize shrink height 10px - bindsym Shift+Up resize shrink height 20px + bindsym Down resize shrink height 10px + bindsym Shift+Down resize shrink height 20px + bindsym Up resize grow height 10px + bindsym Shift+Up resize grow height 20px bindsym Right resize grow width 10px bindsym Shift+Right resize grow width 20px @@ -134,7 +130,7 @@ mode "resize" { # F1 bindsym --locked XF86AudioMute exec amixer set Master toggle -bindsym --locked Shift+XF86AudioMute exec pavucontrol +bindsym --locked Shift+XF86AudioMute exec $term -e amixer # F2 bindsym --locked XF86AudioLowerVolume exec amixer set Master 1%- bindsym --locked Shift+XF86AudioLowerVolume exec amixer set Master 10%- @@ -142,25 +138,28 @@ bindsym --locked Shift+XF86AudioLowerVolume exec amixer set Master 10%- bindsym --locked XF86AudioRaiseVolume exec amixer set Master 1%+ bindsym --locked Shift+XF86AudioRaiseVolume exec amixer set Master 10%+ # F4 -bindsym --locked XF86AudioPrev exec playerctl previous +bindsym --locked XF86AudioPrev exec mpc prev +bindsym --locked Shift+XF86AudioPrev exec playerctl previous # F5 -bindsym --locked XF86AudioPlay exec playerctl play-pause +bindsym --locked XF86AudioPlay exec mpc toggle +bindsym --locked Shift+XF86AudioPlay exec playerctl play-pause # F6 -bindsym --locked XF86AudioNext exec playerctl next +bindsym --locked XF86AudioNext exec mpc next +bindsym --locked Shift+XF86AudioNext exec playerctl next # F7 bindsym --locked XF86MonBrightnessDown exec xbacklight -dec 5 -bindsym --locked Shift+XF86MonBrightnessDown exec busctl --user call -- rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -100 # F8 bindsym --locked XF86MonBrightnessUp exec xbacklight -inc 5 -bindsym --locked Shift+XF86MonBrightnessUp exec busctl --user call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n 100 # F11 bindsym Print exec sway-screenshot -o /home/vale/Pictures/screenshots -m output bindsym Shift+Print exec sway-screenshot -o /home/vale/Pictures/screenshots -m region +bindsym Ctrl+Print exec mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video0 # F12 bindsym XF86AudioMedia exec $term -e btop +bindsym Shift+XF86AudioMedia exec $term -e ncmpcpp # Aesthetics -font pango:Lexend Deca Regular 9 +font pango:Lexend Regular 9 hide_edge_borders smart_no_gaps title_align center @@ -221,11 +220,30 @@ bindsym $mod+Escape exec $lock # Per Program Config exec udiskie -exec librewolf -assign [app_id="librewolf"] workspace number 1 +exec dunst +exec firefox +assign [app_id="firefox"] workspace number 1 assign [title="Steam"] workspace number 6 assign [title="Heroic Games Launcher"] workspace number 6 assign [app_id="org.prismlauncher.PrismLauncher"] workspace number 6 assign [app_id="virt-manager"] workspace number 9 exec keepassxc assign [app_id="org.keepassxc.KeePassXC"] workspace number 10 + +# Floating Configs +for_window [title="Picture-in-Picture$"] floating enable +for_window [window_role="pop-up"] floating enable +for_window [window_role="Pop-up"] floating enable +for_window [window_role="bubble"] floating enable +for_window [window_role="Bubble"] floating enable +for_window [window_role="dialog"] floating enable +for_window [window_role="Dialog"] floating enable +for_window [window_type="dialog"] floating enable +for_window [window_type="Dialog"] floating enable +for_window [class="dialog"] floating enable +for_window [class="Dialog"] floating enable +for_window [window_role="task_dialog"] floating enable +for_window [window_type="menu"] floating enable +for_window [window_role="About"] floating enable + +include ~/.config/sway/config.d/*.conf diff --git a/.config/swaylock/config b/.config/swaylock/config index e29d3ba..90b9ed0 100644 --- a/.config/swaylock/config +++ b/.config/swaylock/config @@ -1,8 +1,11 @@ font=Lexend -image=/home/vale/Pictures/Wallpaper/lockwallpaper.png -indicator-y-position=395 +image=/home/vale/.config/swaylock/lockwallpaper.png +indicator-y-position=420 line-uses-inside +indicator-radius=65 +indicator-thickness=13 + text-color=FCE8C3 inside-color=11111100 diff --git a/.config/swaylock/lockwallpaper.png b/.config/swaylock/lockwallpaper.png new file mode 100644 index 0000000000000000000000000000000000000000..319e30850a9a860054641893e7efd0c0996ad3dd GIT binary patch literal 336294 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