diff --git a/.gitignore b/.gitignore index 2528399..92ed52b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ +# Ignore everything by default /* !.gitignore !README.md +*.log !/assets/ @@ -13,10 +15,9 @@ !/kitty/ !/helix/ +# tree sitter cache /helix/runtime/ -!/btop/ - !/fish/ - -*.log +!/river/ +!/waybar/ diff --git a/btop/btop.conf b/btop/btop.conf deleted file mode 100644 index db82a10..0000000 --- a/btop/btop.conf +++ /dev/null @@ -1,248 +0,0 @@ -#? Config file for btop v. 1.3.2 - -#* 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/ayu.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 = 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 = "mem net proc cpu" - -#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. -update_ms = 500 - -#* 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 = True - -#* 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 = "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" - -#* 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 = 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 = False - -#* 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 = "RTX 4070" - -#* 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/fish/config.fish b/fish/config.fish index c1f1ac3..c1e7a66 100644 --- a/fish/config.fish +++ b/fish/config.fish @@ -1,5 +1,7 @@ +set fish_greeting + if status is-interactive # Commands to run in interactive sessions can go here end -export PATH="$PATH:/home/marvin/bin/010editor_data:$HOME/opt/cross/bin/:$HOME/.cargo/bin/" +set PATH "$PATH:$HOME/.local/bin:$HOME/.cargo/bin/" diff --git a/fish/fish_variables b/fish/fish_variables index 1a82b8a..ad10b9b 100644 --- a/fish/fish_variables +++ b/fish/fish_variables @@ -1,31 +1,3 @@ # This file contains fish universal variable definitions. # VERSION: 3.0 -SETUVAR __fish_initialized:3400 -SETUVAR fish_color_autosuggestion:555\x1ebrblack -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:blue -SETUVAR fish_color_comment:red -SETUVAR fish_color_cwd:green -SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:green -SETUVAR fish_color_error:brred -SETUVAR fish_color_escape:brcyan -SETUVAR fish_color_history_current:\x2d\x2dbold -SETUVAR fish_color_host:normal -SETUVAR fish_color_host_remote:yellow -SETUVAR fish_color_normal:normal -SETUVAR fish_color_operator:brcyan -SETUVAR fish_color_param:cyan -SETUVAR fish_color_quote:yellow -SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold -SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_status:red -SETUVAR fish_color_user:brgreen -SETUVAR fish_color_valid_path:\x2d\x2dunderline -SETUVAR fish_key_bindings:fish_default_key_bindings -SETUVAR fish_pager_color_completion:normal -SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di -SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline -SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan -SETUVAR fish_pager_color_selected_background:\x2dr +SETUVAR __fish_initialized:4300 diff --git a/gtk-3.0/bookmarks b/gtk-3.0/bookmarks index 7792b20..12239ee 100644 --- a/gtk-3.0/bookmarks +++ b/gtk-3.0/bookmarks @@ -1,4 +1,5 @@ file:///home/marvin/Documents +file:///home/marvin/Music +file:///home/marvin/Pictures +file:///home/marvin/Videos file:///home/marvin/Downloads -file:///home/marvin/repos -smb://192.168.178.146/ diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini index 324be04..7c6461a 100644 --- a/gtk-3.0/settings.ini +++ b/gtk-3.0/settings.ini @@ -1,16 +1,2 @@ [Settings] gtk-application-prefer-dark-theme=0 -gtk-button-images=true -gtk-cursor-theme-name=Breeze_Light -gtk-cursor-theme-size=24 -gtk-decoration-layout=icon:minimize,maximize,close -gtk-enable-animations=true -gtk-font-name=Nimbus Sans L [urw], 11 -gtk-icon-theme-name=Tela -gtk-menu-images=true -gtk-modules=colorreload-gtk-module:window-decorations-gtk-module -gtk-primary-button-warps-slider=true -gtk-sound-theme-name=ocean -gtk-theme-name=Breeze -gtk-toolbar-style=3 -gtk-xft-dpi=98304 diff --git a/gtk-4.0/settings.ini b/gtk-4.0/settings.ini index 5f979e4..7c6461a 100644 --- a/gtk-4.0/settings.ini +++ b/gtk-4.0/settings.ini @@ -1,12 +1,2 @@ [Settings] gtk-application-prefer-dark-theme=0 -gtk-cursor-theme-name=Breeze_Light -gtk-cursor-theme-size=24 -gtk-decoration-layout=icon:minimize,maximize,close -gtk-enable-animations=true -gtk-font-name=Nimbus Sans L [urw], 11 -gtk-icon-theme-name=Tela -gtk-modules=colorreload-gtk-module:window-decorations-gtk-module -gtk-primary-button-warps-slider=true -gtk-sound-theme-name=ocean -gtk-xft-dpi=98304 diff --git a/helix/config.toml b/helix/config.toml index 9a2b985..880438d 100644 --- a/helix/config.toml +++ b/helix/config.toml @@ -2,3 +2,8 @@ theme = "dark_plus" [editor.lsp] display-inlay-hints = true + +[keys.normal] +# Move lines up and down +A-up = ["extend_to_line_bounds", "delete_selection", "move_line_up", "paste_before"] +A-down = ["extend_to_line_bounds", "delete_selection", "paste_after"] diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 9abcbc4..6eb3f7b 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -1,11 +1,14 @@ -font_family MartianMono Nerd Font -bold_font auto -italic_font auto -bold_italic_font auto +cursor_shape beam +scrollback_lines 4000 +background_opacity 0.70 +shell /usr/bin/fish +background #000000 +window_margin_width 5 -cursor_shape beam -scrollback_lines 4000 -background_opacity 0.91 -shell /usr/bin/fish -hide_window_decorations yes -background #1C2430 \ No newline at end of file +# BEGIN_KITTY_FONTS +font_family Cascadia Code +bold_font auto +italic_font auto +bold_italic_font auto +disable_ligatures always +# END_KITTY_FONTS diff --git a/kitty/kitty.conf.bak b/kitty/kitty.conf.bak new file mode 100644 index 0000000..597cd9b --- /dev/null +++ b/kitty/kitty.conf.bak @@ -0,0 +1,11 @@ +font_family Cascadia Code Mono +bold_font auto +italic_font auto +bold_italic_font auto + +cursor_shape beam +scrollback_lines 4000 +background_opacity 0.91 +shell /usr/bin/fish +hide_window_decorations yes +background #1C2430 diff --git a/river/init b/river/init new file mode 100755 index 0000000..502a201 --- /dev/null +++ b/river/init @@ -0,0 +1,151 @@ +#!/bin/sh + +# Keyboard +riverctl keyboard-layout "de(e2)" +# Top bar +riverctl spawn waybar +# Background +riverctl spawn "swaybg --mode fill --image ~/.config/assets/clouds.jpg" +# Change scroll direction for everything but the touchpad +riverctl input "*" natural-scroll disabled +riverctl input "*Touchpad*" natural-scroll enabled +# Terminal +riverctl map normal Super T spawn kitty +# Close window +riverctl map normal Super C close +# Lock screen +riverctl map normal Super L spawn waylock +# Exit river +riverctl map normal Super+Shift E exit + +# 1.5x scale for integrated screen +riverctl spawn "wlr-randr --output eDP-1 --mode 2880x1800@120 --scale 1.5 --adaptive-sync enabled" + +# Super+J and Super+K to focus the next/previous view in the layout stack +riverctl map normal Alt Tab focus-view next +riverctl map normal Shift+Alt Tab focus-view previous + +# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous +# view in the layout stack +riverctl map normal Super+Shift J swap next +riverctl map normal Super+Shift K swap previous + +# Super+Period and Super+Comma to focus the next/previous output +riverctl map normal Super Period focus-output next +riverctl map normal Super Comma focus-output previous + +# Super+Shift+{Period,Comma} to send the focused view to the next/previous output +riverctl map normal Super+Shift Period send-to-output next +riverctl map normal Super+Shift Comma send-to-output previous + +# Super+Return to bump the focused view to the top of the layout stack +riverctl map normal Super Return zoom + +# Super+Alt+Control+{H,J,K,L} to snap views to screen edges +riverctl map normal Super+Alt+Control H snap left +riverctl map normal Super+Alt+Control J snap down +riverctl map normal Super+Alt+Control K snap up +riverctl map normal Super+Alt+Control L snap right + +# Super+Alt+Shift+{H,J,K,L} to resize views +riverctl map normal Super+Alt+Shift H resize horizontal -100 +riverctl map normal Super+Alt+Shift J resize vertical 100 +riverctl map normal Super+Alt+Shift K resize vertical -100 +riverctl map normal Super+Alt+Shift L resize horizontal 100 + +# Super + Left Mouse Button to move views +riverctl map-pointer normal Super BTN_LEFT move-view + +# Super + Right Mouse Button to resize views +riverctl map-pointer normal Super BTN_RIGHT resize-view + +# Super + Middle Mouse Button to toggle float +riverctl map-pointer normal Super BTN_MIDDLE toggle-float + +for i in $(seq 1 9) +do + tags=$((1 << ($i - 1))) + + # Super+[1-9] to focus tag [0-8] + riverctl map normal Super $i set-focused-tags $tags + + # Super+Shift+[1-9] to tag focused view with tag [0-8] + riverctl map normal Super+Shift $i set-view-tags $tags + + # Super+Control+[1-9] to toggle focus of tag [0-8] + riverctl map normal Super+Control $i toggle-focused-tags $tags + + # Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view + riverctl map normal Super+Shift+Control $i toggle-view-tags $tags +done + +# Super+0 to focus all tags +# Super+Shift+0 to tag focused view with all tags +all_tags=$(((1 << 32) - 1)) +riverctl map normal Super 0 set-focused-tags $all_tags +riverctl map normal Super+Shift 0 set-view-tags $all_tags + +# Super+Space to toggle float +riverctl map normal Super Space toggle-float + +# Super+F to toggle fullscreen +riverctl map normal Super F toggle-fullscreen + +# Super+{Up,Right,Down,Left} to change layout orientation +riverctl map normal Super Up send-layout-cmd rivertile "main-location top" +riverctl map normal Super Right send-layout-cmd rivertile "main-location right" +riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom" +riverctl map normal Super Left send-layout-cmd rivertile "main-location left" + +# Declare a passthrough mode. This mode has only a single mapping to return to +# normal mode. This makes it useful for testing a nested wayland compositor +riverctl declare-mode passthrough + +# Super+F11 to enter passthrough mode +riverctl map normal Super F11 enter-mode passthrough + +# Super+F11 to return to normal mode +riverctl map passthrough Super F11 enter-mode normal + +# Various media key mapping examples for both normal and locked mode which do +# not have a modifier +for mode in normal locked +do + riverctl map $mode None XF86AudioRaiseVolume spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+' + riverctl map $mode None XF86AudioLowerVolume spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-' + riverctl map $mode None XF86AudioMute spawn 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle' + + riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPrev spawn 'playerctl previous' + riverctl map $mode None XF86AudioNext spawn 'playerctl next' + + # TODO + riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set +5%' + riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 5%-' +done + +riverctl map normal Super+Shift S spawn 'grim -g "$(slurp -d)" -t png - | wl-copy -t image/png' + +# Set background and border color +riverctl background-color 0x000000 +riverctl border-color-focused 0x5050B0FF +riverctl border-color-unfocused 0xFFFFFF50 +riverctl border-width 5 + +# Set keyboard repeat rate +riverctl set-repeat 50 300 + +# Make all views with an app-id that starts with "float" and title "foo" start floating. +riverctl rule-add -app-id 'float*' -title 'foo' float + +# Make all views with app-id "bar" and any title use client-side decorations +riverctl rule-add -app-id "bar" csd + +# Screensharing +systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river +systemctl --user restart xdg-desktop-portal + +riverctl default-layout bsp-layout +river-bsp-layout --inner-gap 5 --outer-gap 10 --split-perc 0.5 & diff --git a/waybar/config.jsonc b/waybar/config.jsonc new file mode 100644 index 0000000..58458be --- /dev/null +++ b/waybar/config.jsonc @@ -0,0 +1,149 @@ +// -*- mode: jsonc -*- +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 6, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": [ + "river/tags", + "sway/workspaces", + "river/window", + "sway/window" + ], + "modules-center": [ + "clock" + ], + "modules-right": [ + "wireplumber#sink", + "wireplumber#source", + "network", + "power-profiles-daemon", + "cpu", + "temperature", + "memory", + "backlight", + "battery", + "tray", + "custom/power" + ], + // Modules configuration + "sway/workspaces": { + "all-outputs": true + }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "clock": { + "interval": 10, + "format": "{:%T %d.%m.%Y}", + "locale": "de_DE.UTF-8", + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}" + }, + "cpu": { + "format": "cpu {icon}", + "tooltip-format": "{usage}%", + "format-icons": [ "⡀", "⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿" ] + }, + "memory": { + "format": "mem {icon}", + "format-icons": [ "⡀", "⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿" ], + "tooltip-format": "{}%" + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C" + }, + "backlight": { + // "device": "acpi_video1", + "format": "screen {icon}", + "tooltip-format": "{percent}%", + "format-icons": [ "⡀", "⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿" ], + "scroll-step": 5 + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "bat {icon}", + "format-charging": "bat {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "tooltip-format": "{capacity}%", + "format-icons": [ "⡀", "⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿" ] + }, + "power-profiles-daemon": { + "format": "profile {icon}", + "tooltip-format": "profile: {profile}\ndriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "-", + "performance": "p", + "balanced": "-", + "power-saver": "e" + } + }, + "network": { + "format-wifi": "net {icon}", + "tooltip-format-wifi": "interface {ifname}\nip {ipaddr}/{cidr}\ngateway {gwaddr}\nssid {essid}", + "format-ethernet": "net e", + "tooltip-format": "interface {ifname}\nip {ipaddr}/{cidr}\ngateway {gwaddr}", + "format-linked": "net ?", + "format-disconnected": "net -", + "format-icons": [ "⡀", "⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿" ] + }, + "wireplumber#sink": { + "format": "vol {icon}", + "tooltip-format": "{node_name}: {volume}%", + "format-icons": [ "⡀", "⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿" ], + "format-muted": "vol m", + "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", + "scroll-step": 5 + }, + "wireplumber#source": { + "node-type": "Audio/Source", + "format": "mic {icon}", + "tooltip-format": "{node_name}: {volume}%", + "format-icons": [ "⡀", "⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿" ], + "format-muted": "mic m", + "on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle", + "scroll-step": 5 + }, + "custom/media": { + "format": "{icon} {text}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + }, + "custom/power": { + "format": "⏻ ", + "tooltip": false, + "menu": "on-click", + "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder + "menu-actions": { + "shutdown": "shutdown", + "reboot": "reboot", + "suspend": "systemctl suspend", + "hibernate": "systemctl hibernate" + } + } +} diff --git a/waybar/power_menu.xml b/waybar/power_menu.xml new file mode 100644 index 0000000..c9867a6 --- /dev/null +++ b/waybar/power_menu.xml @@ -0,0 +1,28 @@ + + + + + + Suspend + + + + + Hibernate + + + + + Shutdown + + + + + + + + Reboot + + + + diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..3c9db80 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,178 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: Cascadia Code, Roboto, Helvetica, Arial, monospace; + font-size: 13px; +} + +window#waybar { + background-color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid rgba(100, 114, 125, 0.5); + color: #ffffff; + transition-property: background-color; + transition-duration: .1s; +} + +window#waybar.hidden { + opacity: 1; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +button { + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; + /* Avoid rounded borders under each button name */ + border: none; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +button:hover { + background: inherit; + box-shadow: inset 0 -3px #ffffff; +} + +#tags button { +} + +#tags button:hover { + background: rgba(0, 0, 0, 0.2); +} + +#tags button.focused { + background-color: rgba(30, 30, 30, 0.7); + /* color: #7f7f7f; */ + box-shadow: inset 0 -3px #ffffff; +} + +#tags button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + box-shadow: inset 0 -3px #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#power-profiles-daemon, +#mpd { + padding: 10px 10px; + color: #ffffff; +} + +#window, +#workspaces { + margin: 0 4px; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +/* Using steps() instead of linear as a timing function to limit cpu usage */ +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state { + background: #97e1ad; + color: #000000; + padding: 0 0px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad.empty { + background-color: transparent; +} + +#privacy { + padding: 0; +} + +#privacy-item { + padding: 0 5px; + color: white; +} + +#privacy-item.screenshare { + background-color: #cf5700; +} + +#privacy-item.audio-in { + background-color: #1ca000; +} + +#privacy-item.audio-out { + background-color: #0069d4; +}