From 5ce66d883c30d388de7c54cef41b271292f43c01 Mon Sep 17 00:00:00 2001 From: david bernet <david.bernet@student.uni-halle.de> Date: Wed, 27 Nov 2024 08:10:50 +0100 Subject: [PATCH] Newnewnew idk --- hypr/hyprland.conf | 309 ++++++++++++++++++++++++++ keepassxc/keepassxc.ini | 24 ++ nvim/init.lua | 116 ++++++++++ nvim/plugged/catppuchin | 1 + nvim/plugged/gruvbox | 1 + nvim/plugged/gruvbox.nvim | 1 + nvim/plugged/lualine.nvim | 1 + nvim/plugged/mason-lspconfig.nvim | 1 + nvim/plugged/mason.nvim | 1 + nvim/plugged/neo-tree.nvim | 1 + nvim/plugged/nui.nvim | 1 + nvim/plugged/nvim-lspconfig | 1 + nvim/plugged/nvim-treesitter | 1 + nvim/plugged/nvim-web-devicons | 1 + nvim/plugged/plenary.nvim | 1 + nvim/plugged/telescope-ui-select.nvim | 1 + nvim/plugged/telescope.nvim | 1 + rofi/config.rasi | 213 +----------------- rofi/rofi-scripts/options | 3 + rofi/rofi-scripts/powermenu.sh | 20 ++ rofi/rofi-scripts/wifi-manager.sh | 67 ++++++ waybar/config.jsonc | 132 +++++++++++ waybar/launch-waybar.sh | 5 + waybar/light_in_range.sh | 7 + waybar/style.css | 107 +++++++++ waybar/style.scss | 143 ++++++++++++ 26 files changed, 948 insertions(+), 212 deletions(-) create mode 100644 hypr/hyprland.conf create mode 100644 keepassxc/keepassxc.ini create mode 100644 nvim/init.lua create mode 160000 nvim/plugged/catppuchin create mode 160000 nvim/plugged/gruvbox create mode 160000 nvim/plugged/gruvbox.nvim create mode 160000 nvim/plugged/lualine.nvim create mode 160000 nvim/plugged/mason-lspconfig.nvim create mode 160000 nvim/plugged/mason.nvim create mode 160000 nvim/plugged/neo-tree.nvim create mode 160000 nvim/plugged/nui.nvim create mode 160000 nvim/plugged/nvim-lspconfig create mode 160000 nvim/plugged/nvim-treesitter create mode 160000 nvim/plugged/nvim-web-devicons create mode 160000 nvim/plugged/plenary.nvim create mode 160000 nvim/plugged/telescope-ui-select.nvim create mode 160000 nvim/plugged/telescope.nvim create mode 100644 rofi/rofi-scripts/options create mode 100644 rofi/rofi-scripts/powermenu.sh create mode 100644 rofi/rofi-scripts/wifi-manager.sh create mode 100644 waybar/config.jsonc create mode 100644 waybar/launch-waybar.sh create mode 100644 waybar/light_in_range.sh create mode 100644 waybar/style.css create mode 100644 waybar/style.scss diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..af47e44 --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,309 @@ +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/ + +# You can split this configuration into multiple files +# Create your files separately and then link them to this file like this: +# source = ~/.config/hypr/myColors.conf + + +plugin { + split-monitor-workspaces { + count = 5 + keep_focused = 0 + enable_notifications = 0 + enable_persistent_workspaces = 1 + } +} + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=eDP-1, 1920x1080, 0x0, 1.00 +monitor=HDMI-A-1, 1920x1080, 1920x0, 1.00 +# list available monitors with $> hyprctl monitors all + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$fileManager = nemo +$menu = rofi -show drun +$webbrowser = mullvad-browser + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +# exec-once = $terminal +# exec-once = nm-applet & +exec-once = swaybg -i /home/hexe/Bilder/grafiken/wallpapers/conrado_salinas.png & +exec-once = sh /home/hexe/.config/waybar/launch-waybar.sh +exec-once = systemctl --user start hyprpolkitagent +exec-once = hyprpm reload +exec-once = keepassxc + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 0 + gaps_out = 0 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 0 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = false + #range = 4 + #render_power = 3 + #color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = false + #size = 3 + #passes = 1 + + #vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = false #yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + +# bezier = easeOutQuint,0.23,1,0.32,1 +# bezier = easeInOutCubic,0.65,0.05,0.36,1 +# bezier = linear,0,0,1,1 +# bezier = almostLinear,0.5,0.5,0.75,1.0 +# bezier = quick,0.15,0,0.1,1 +# +# animation = global, 1, 10, default +# animation = border, 1, 5.39, easeOutQuint +# animation = windows, 1, 4.79, easeOutQuint +# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% +# animation = windowsOut, 1, 1.49, linear, popin 87% +# animation = fadeIn, 1, 1.73, almostLinear +# animation = fadeOut, 1, 1.46, almostLinear +# animation = fade, 1, 3.03, quick +# animation = layers, 1, 3.81, easeOutQuint +# animation = layersIn, 1, 4, easeOutQuint, fade +# animation = layersOut, 1, 1.5, linear, fade +# animation = fadeLayersIn, 1, 1.79, almostLinear +# animation = fadeLayersOut, 1, 1.39, almostLinear +# animation = workspaces, 1, 1.94, almostLinear, fade +# animation = workspacesIn, 1, 1.21, almostLinear, fade +# animation = workspacesOut, 1, 1.94, almostLinear, fade +} + +# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +# workspace = w[tv1], gapsout:0, gapsin:0 +# workspace = f[1], gapsout:0, gapsin:0 +# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1] +# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] +# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] +# windowrulev2 = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#gestures +gestures { + workspace_swipe = false +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + + +################### +### KEYBINDINGS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, M, fullscreen, +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, W, exec, $webbrowser +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +bind = $mainMod SHIFT, left, movewindow, l +bind = $mainMod SHIFT, right, movewindow, r +bind = $mainMod SHIFT ALT, up, split-movetoworkspace, e+1 +bind = $mainMod SHIFT ALT, down, split-movetoworkspace, e-1 + + +bind = $mainMod ALT, down, split-workspace, e-1 +bind = $mainMod ALT, up, split-workspace, e+1 + + + +# Switch workspaces with mainMod + [0-9] +#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 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +#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 SHIFT, S, movetoworkspace, special:magic +# +## Scroll through existing workspaces with mainMod + scroll +#bind = $mainMod, mouse_down, workspace, e+1 +#bind = $mainMod, mouse_up, workspace, e-1 +# +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Laptop multimedia keys for volume and LCD brightness +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, light -A 2 +bindel = ,XF86MonBrightnessDown, exec, light -U 2 + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +windowrule = float, ^(keepassxc)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +# 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 diff --git a/keepassxc/keepassxc.ini b/keepassxc/keepassxc.ini new file mode 100644 index 0000000..1601cc0 --- /dev/null +++ b/keepassxc/keepassxc.ini @@ -0,0 +1,24 @@ +[General] +ConfigVersion=2 +MinimizeAfterUnlock=true + +[Browser] +CustomProxyLocation= +Enabled=true + +[GUI] +ApplicationTheme=dark +MinimizeOnClose=true +MinimizeOnStartup=true +MinimizeToTray=true +ShowTrayIcon=true +TrayIconAppearance=colorful + +[KeeShare] +Active="<?xml version=\"1.0\"?><KeeShare><Active/></KeeShare>\n" +Own="<?xml version=\"1.0\"?><KeeShare><PrivateKey>MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCuj4D3pK/9Rk9OfiP8vgwgAeoO0xpn/vN9qmpeTKUsY1I1iyj2Zs39ombg7F/HbpCQfexzDfyMpazTlzcFa1M9Y/DQBeHRO5a/BL/+6d42Xk/fWoFjTBtDgnrJu315LEXHjZNB1J2Xm7AVxDBktAYu+AkaTdMvhzOD//yO1E4b2TBQ1WvaWIfxfhnAg2baDuKeZWy88+5FUFFDr+O4jitlCbilReoinNk0RUcchvIvIa1S/so3ekC7FLczYB3UrUTJ6OmkcqGVx719FhUDVgXb9tLcmpF8IPLBxFc3DH1eCic/5ClAL43uJEoKjQas9LY2l3hZ8lZWNYIXhXxcjBEtAgMBAAECggEAJv2Byo7cCoAebcNqKWWP0sRqseYAU3NUkuCyQp7vE/OZZMFRJHyBDWKthRb3K9Yr70JZQrfAje/hox93GDxJSwCcRPLTZkdfnAolEnzNeCpnv9V46iORQWqPH6lD1QGJEpIybrVdgAQz+CCqyIuXh/06F0iD3+1cmeLfWE3epoRlsHNm0CCTFq7eDIDHcdh90WsFHAqNVA2C1fHPtP7D3lAZY8cNCral4u0NPthFn3EWyppl4SethRUIKdkhPzAEwtd/o/CTONpbwIiqId5Zx6KAAD7yNk4XOnAXdBbg3SesYfsCyMPcRMPTDvyV3HKCCpvExMQQMge4wc6CM87zdwKBgQDLrt+qQkSIPitYdq2A1NyRYxqU3X20IXtn0oy03idDVxuGMA3jxyCWnQdiUwa7xP70V+skESn9bwSMAK1j9HtSZw3KszAfX3pkNUDhZ+8ae/Ub4Q1rEjagBa1tmIRUydO8dGbuFoTaUumxl6kyol8gy6czE9SHaYIPdi8nZh3EHwKBgQDbZa+AdYGMqLesy2q29SKDkGR2f3d2WYphIaj5Kv8bqRguvC2PtFtUBnDuCAm/n2sTXWRHQhVrxxClNv6+zUbsuy8XJwytZnsEZST2SMnUZ5U5i3HTWXZikdmeWx45mCWREt5s7d0VlNgWg+mBfy4SVVpP4T01e2xNELJu1uohMwKBgCavJN2yTk/N9u+LQrKoOugF+YNyebBfd4+lZoHne2+HuLuInuq25BKW6lMbT7kT1hRUKl2kQORYVHW+ny/PvChPWEg6NhaPTLCBiLwGwFu4VTohSSofwG4uBd09zUxJNMSjGvV3I25PtwC6vDDYs9aHt061InVBbalAGf6Sn26jAoGBAK8NxGmH2HUlzV/28k/G6eH1nOMbs3Lf4NS9abhdwS0Nz3jCtsu5iUFS3lpeWYDmryXFV5Svuq3DKJnadopA+f07IUik5K2aXj9UgJht3XQ3rc47X/fVourlGrEKXORxbFADsStS4xssJvpYCEFF+7mvFp8zxYXd07ztvKFJo4gXAoGAFAx91OXQ6dJR/ockP2/zjG3WrQNgyGOLnBBFUMbKhnDpH34FYFKvmLxzOCFr9JmsxM3UtgbdylROOpIjP4wXngDByvSUSJIXioxbUgaRb5C7h2yv+Q265fSLQBTmrpVODbMVf37SdtPzOjR1x6BWFj7f9gmV6Cd2eB87BSkGrxI=</PrivateKey><PublicKey><Signer>hexe</Signer><Key>MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCuj4D3pK/9Rk9OfiP8vgwgAeoO0xpn/vN9qmpeTKUsY1I1iyj2Zs39ombg7F/HbpCQfexzDfyMpazTlzcFa1M9Y/DQBeHRO5a/BL/+6d42Xk/fWoFjTBtDgnrJu315LEXHjZNB1J2Xm7AVxDBktAYu+AkaTdMvhzOD//yO1E4b2TBQ1WvaWIfxfhnAg2baDuKeZWy88+5FUFFDr+O4jitlCbilReoinNk0RUcchvIvIa1S/so3ekC7FLczYB3UrUTJ6OmkcqGVx719FhUDVgXb9tLcmpF8IPLBxFc3DH1eCic/5ClAL43uJEoKjQas9LY2l3hZ8lZWNYIXhXxcjBEtAgMBAAECggEAJv2Byo7cCoAebcNqKWWP0sRqseYAU3NUkuCyQp7vE/OZZMFRJHyBDWKthRb3K9Yr70JZQrfAje/hox93GDxJSwCcRPLTZkdfnAolEnzNeCpnv9V46iORQWqPH6lD1QGJEpIybrVdgAQz+CCqyIuXh/06F0iD3+1cmeLfWE3epoRlsHNm0CCTFq7eDIDHcdh90WsFHAqNVA2C1fHPtP7D3lAZY8cNCral4u0NPthFn3EWyppl4SethRUIKdkhPzAEwtd/o/CTONpbwIiqId5Zx6KAAD7yNk4XOnAXdBbg3SesYfsCyMPcRMPTDvyV3HKCCpvExMQQMge4wc6CM87zdwKBgQDLrt+qQkSIPitYdq2A1NyRYxqU3X20IXtn0oy03idDVxuGMA3jxyCWnQdiUwa7xP70V+skESn9bwSMAK1j9HtSZw3KszAfX3pkNUDhZ+8ae/Ub4Q1rEjagBa1tmIRUydO8dGbuFoTaUumxl6kyol8gy6czE9SHaYIPdi8nZh3EHwKBgQDbZa+AdYGMqLesy2q29SKDkGR2f3d2WYphIaj5Kv8bqRguvC2PtFtUBnDuCAm/n2sTXWRHQhVrxxClNv6+zUbsuy8XJwytZnsEZST2SMnUZ5U5i3HTWXZikdmeWx45mCWREt5s7d0VlNgWg+mBfy4SVVpP4T01e2xNELJu1uohMwKBgCavJN2yTk/N9u+LQrKoOugF+YNyebBfd4+lZoHne2+HuLuInuq25BKW6lMbT7kT1hRUKl2kQORYVHW+ny/PvChPWEg6NhaPTLCBiLwGwFu4VTohSSofwG4uBd09zUxJNMSjGvV3I25PtwC6vDDYs9aHt061InVBbalAGf6Sn26jAoGBAK8NxGmH2HUlzV/28k/G6eH1nOMbs3Lf4NS9abhdwS0Nz3jCtsu5iUFS3lpeWYDmryXFV5Svuq3DKJnadopA+f07IUik5K2aXj9UgJht3XQ3rc47X/fVourlGrEKXORxbFADsStS4xssJvpYCEFF+7mvFp8zxYXd07ztvKFJo4gXAoGAFAx91OXQ6dJR/ockP2/zjG3WrQNgyGOLnBBFUMbKhnDpH34FYFKvmLxzOCFr9JmsxM3UtgbdylROOpIjP4wXngDByvSUSJIXioxbUgaRb5C7h2yv+Q265fSLQBTmrpVODbMVf37SdtPzOjR1x6BWFj7f9gmV6Cd2eB87BSkGrxI=</Key></PublicKey></KeeShare>\n" +QuietSuccess=true + +[PasswordGenerator] +AdditionalChars= +ExcludedChars= diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..3e00146 --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,116 @@ +vim.cmd("set expandtab") +vim.cmd("set tabstop=4") +vim.cmd("set softtabstop=4") +vim.cmd("set shiftwidth=4") +vim.g.mapleader = " " + +-- Initialize vim-plug +---------------------- +local plug_path = vim.fn.stdpath('data') .. '/site/autoload/plug.vim' +if vim.fn.empty(vim.fn.glob(plug_path)) > 0 then + vim.fn.system({ + 'sh', '-c', + 'curl -fLo ' .. plug_path .. ' --create-dirs ' .. + 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' + }) + vim.cmd 'autocmd VimEnter * PlugInstall | source $MYVIMRC' +end + + +-- vim-plug Plugin Section +-------------------------- +vim.cmd [[ +call plug#begin('~/.config/nvim/plugged') + +Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} +Plug 'neovim/nvim-lspconfig' +Plug 'ellisonleao/gruvbox.nvim' +Plug 'nvim-lua/plenary.nvim' + +Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.8' } +Plug 'nvim-telescope/telescope-ui-select.nvim' + +Plug 'https://github.com/nvim-neo-tree/neo-tree.nvim.git' +Plug 'nvim-tree/nvim-web-devicons' +Plug 'MunifTanjim/nui.nvim' +Plug 'nvim-lualine/lualine.nvim' + +Plug 'williamboman/mason.nvim' +Plug 'williamboman/mason-lspconfig.nvim' +Plug 'neovim/nvim-lspconfig' + +call plug#end() +]] + +-- line numbers +--------------- +vim.o.number = true -- Enable line numbers +vim.o.relativenumber = true -- Enable relative line numbers +vim.cmd [[ + autocmd InsertEnter * set norelativenumber " Disable relative numbers in insert mode + autocmd InsertLeave * set relativenumber " Enable relative numbers in normal mode +]] + +-- Set colorscheme +------------------ +vim.o.background = "dark" -- or "light" for light mode +-- Default options: +require("gruvbox").setup({ + terminal_colors = true, -- add neovim terminal colors + contrast = "soft", -- can be "hard", "soft" or empty string + palette_overrides = { +-- bright_green = "#ffffff", + } +}) +vim.cmd("colorscheme gruvbox") + +-- Set up Telescope +------------------- +local builtin = require("telescope.builtin") +vim.keymap.set('n', '<C-p>', builtin.find_files, {}) +vim.keymap.set('n', '<leader>ff', builtin.find_files, {}) +vim.keymap.set('n', '<leader>fg', builtin.live_grep, {}) + +-- This is your opts table +require("telescope").setup { + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown { + -- even more opts + } + } + } +} +-- To get ui-select loaded and working with telescope, you need to call +-- load_extension, somewhere after setup function: +require("telescope").load_extension("ui-select") + +-- Treesitter +------------- +local config = require("nvim-treesitter.configs") +config.setup({ + ensure_installed = {"lua", "javascript", "rust", "json"}, + highlight = { enable = true }, + indent = { enable = true }, +}) + +-- Neotree +---------- +vim.keymap.set('n', '<C-n>', ':Neotree filesystem reveal left<CR>') + +-- Status line +-------------- +require('lualine').setup() + +-- LSP configuration +-------------------- +require('mason').setup() +require('mason-lspconfig').setup({ + ensure_installed = { "lua_ls", "ts_ls" } +}) + +local lspconfig = require('lspconfig') +lspconfig.lua_ls.setup({}) +lspconfig.ts_ls.setup({}) +vim.keymap.set('n', 'K', vim.lsp.buf.hover, {}) +vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, {}) diff --git a/nvim/plugged/catppuchin b/nvim/plugged/catppuchin new file mode 160000 index 0000000..637d99e --- /dev/null +++ b/nvim/plugged/catppuchin @@ -0,0 +1 @@ +Subproject commit 637d99e638bc6f1efedac582f6ccab08badac0c6 diff --git a/nvim/plugged/gruvbox b/nvim/plugged/gruvbox new file mode 160000 index 0000000..f1ecde8 --- /dev/null +++ b/nvim/plugged/gruvbox @@ -0,0 +1 @@ +Subproject commit f1ecde848f0cdba877acb0c740320568252cc482 diff --git a/nvim/plugged/gruvbox.nvim b/nvim/plugged/gruvbox.nvim new file mode 160000 index 0000000..49d9c0b --- /dev/null +++ b/nvim/plugged/gruvbox.nvim @@ -0,0 +1 @@ +Subproject commit 49d9c0b150ba70efcd831ec7b3cb8ee740067045 diff --git a/nvim/plugged/lualine.nvim b/nvim/plugged/lualine.nvim new file mode 160000 index 0000000..2a5bae9 --- /dev/null +++ b/nvim/plugged/lualine.nvim @@ -0,0 +1 @@ +Subproject commit 2a5bae925481f999263d6f5ed8361baef8df4f83 diff --git a/nvim/plugged/mason-lspconfig.nvim b/nvim/plugged/mason-lspconfig.nvim new file mode 160000 index 0000000..43894ad --- /dev/null +++ b/nvim/plugged/mason-lspconfig.nvim @@ -0,0 +1 @@ +Subproject commit 43894adcf10bb1190c2184bd7c1750e8ea2b3dce diff --git a/nvim/plugged/mason.nvim b/nvim/plugged/mason.nvim new file mode 160000 index 0000000..e2f7f90 --- /dev/null +++ b/nvim/plugged/mason.nvim @@ -0,0 +1 @@ +Subproject commit e2f7f9044ec30067bc11800a9e266664b88cda22 diff --git a/nvim/plugged/neo-tree.nvim b/nvim/plugged/neo-tree.nvim new file mode 160000 index 0000000..a77af2e --- /dev/null +++ b/nvim/plugged/neo-tree.nvim @@ -0,0 +1 @@ +Subproject commit a77af2e764c5ed4038d27d1c463fa49cd4794e07 diff --git a/nvim/plugged/nui.nvim b/nvim/plugged/nui.nvim new file mode 160000 index 0000000..b58e2bf --- /dev/null +++ b/nvim/plugged/nui.nvim @@ -0,0 +1 @@ +Subproject commit b58e2bfda5cea347c9d58b7f11cf3012c7b3953f diff --git a/nvim/plugged/nvim-lspconfig b/nvim/plugged/nvim-lspconfig new file mode 160000 index 0000000..291a8f1 --- /dev/null +++ b/nvim/plugged/nvim-lspconfig @@ -0,0 +1 @@ +Subproject commit 291a8f1a319dc712db85bcc174b0cf406f0a5b69 diff --git a/nvim/plugged/nvim-treesitter b/nvim/plugged/nvim-treesitter new file mode 160000 index 0000000..1249b4c --- /dev/null +++ b/nvim/plugged/nvim-treesitter @@ -0,0 +1 @@ +Subproject commit 1249b4cfce166f26fe52e46ed36bda907d6bb577 diff --git a/nvim/plugged/nvim-web-devicons b/nvim/plugged/nvim-web-devicons new file mode 160000 index 0000000..f09be61 --- /dev/null +++ b/nvim/plugged/nvim-web-devicons @@ -0,0 +1 @@ +Subproject commit f09be61d05bebcba85bb47be1931322d51b95644 diff --git a/nvim/plugged/plenary.nvim b/nvim/plugged/plenary.nvim new file mode 160000 index 0000000..2d9b061 --- /dev/null +++ b/nvim/plugged/plenary.nvim @@ -0,0 +1 @@ +Subproject commit 2d9b06177a975543726ce5c73fca176cedbffe9d diff --git a/nvim/plugged/telescope-ui-select.nvim b/nvim/plugged/telescope-ui-select.nvim new file mode 160000 index 0000000..6e51d7d --- /dev/null +++ b/nvim/plugged/telescope-ui-select.nvim @@ -0,0 +1 @@ +Subproject commit 6e51d7da30bd139a6950adf2a47fda6df9fa06d2 diff --git a/nvim/plugged/telescope.nvim b/nvim/plugged/telescope.nvim new file mode 160000 index 0000000..a0bbec2 --- /dev/null +++ b/nvim/plugged/telescope.nvim @@ -0,0 +1 @@ +Subproject commit a0bbec21143c7bc5f8bb02e0005fa0b982edc026 diff --git a/rofi/config.rasi b/rofi/config.rasi index 42967d7..7665bd7 100644 --- a/rofi/config.rasi +++ b/rofi/config.rasi @@ -1,213 +1,2 @@ -configuration { - modes: "window,drun,run,ssh"; -/* font: "mono 12";*/ -/* location: 0;*/ -/* yoffset: 0;*/ -/* xoffset: 0;*/ -/* fixed-num-lines: true;*/ - show-icons: true; -/* terminal: "rofi-sensible-terminal";*/ -/* ssh-client: "ssh";*/ -/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ -/* run-command: "{cmd}";*/ -/* run-list-command: "";*/ -/* run-shell-command: "{terminal} -e {cmd}";*/ -/* window-command: "wmctrl -i -R {window}";*/ -/* window-match-fields: "all";*/ -/* icon-theme: ;*/ -/* drun-match-fields: "name,generic,exec,categories,keywords";*/ -/* drun-categories: ;*/ -/* drun-show-actions: false;*/ -/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/ -/* drun-url-launcher: "xdg-open";*/ -/* disable-history: false;*/ -/* ignored-prefixes: "";*/ -/* sort: false;*/ -/* sorting-method: "normal";*/ -/* case-sensitive: false;*/ -/* cycle: true;*/ -/* sidebar-mode: false;*/ -/* hover-select: false;*/ -/* eh: 1;*/ -/* auto-select: false;*/ -/* parse-hosts: false;*/ -/* parse-known-hosts: true;*/ -/* combi-modes: "window,run";*/ -/* matching: "normal";*/ -/* tokenize: true;*/ -/* m: "-5";*/ -/* filter: ;*/ -/* dpi: -1;*/ -/* threads: 0;*/ -/* scroll-method: 0;*/ -/* window-format: "{w} {c} {t}";*/ -/* click-to-exit: true;*/ -/* max-history-size: 25;*/ -/* combi-hide-mode-prefix: false;*/ -/* combi-display-format: "{mode} {text}";*/ -/* matching-negate-char: '-' /* unsupported */;*/ -/* cache-dir: ;*/ -/* window-thumbnail: false;*/ -/* drun-use-desktop-cache: false;*/ -/* drun-reload-desktop-cache: false;*/ -/* normalize-match: false;*/ -/* steal-focus: false;*/ -/* application-fallback-icon: ;*/ -/* refilter-timeout-limit: 8192;*/ -/* xserver-i300-workaround: false;*/ -/* pid: "/run/user/1000/rofi.pid";*/ -/* display-window: ;*/ -/* display-windowcd: ;*/ -/* display-run: ;*/ -/* display-ssh: ;*/ -/* display-drun: ;*/ -/* display-combi: ;*/ -/* display-keys: ;*/ -/* display-filebrowser: ;*/ -/* kb-primary-paste: "Control+V,Shift+Insert";*/ -/* kb-secondary-paste: "Control+v,Insert";*/ -/* kb-clear-line: "Control+w";*/ -/* kb-move-front: "Control+a";*/ -/* kb-move-end: "Control+e";*/ -/* kb-move-word-back: "Alt+b,Control+Left";*/ -/* kb-move-word-forward: "Alt+f,Control+Right";*/ -/* kb-move-char-back: "Left,Control+b";*/ -/* kb-move-char-forward: "Right,Control+f";*/ -/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ -/* kb-remove-word-forward: "Control+Alt+d";*/ -/* kb-remove-char-forward: "Delete,Control+d";*/ -/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/ -/* kb-remove-to-eol: "Control+k";*/ -/* kb-remove-to-sol: "Control+u";*/ -/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ -/* kb-accept-custom: "Control+Return";*/ -/* kb-accept-custom-alt: "Control+Shift+Return";*/ -/* kb-accept-alt: "Shift+Return";*/ -/* kb-delete-entry: "Shift+Delete";*/ -/* kb-mode-next: "Shift+Right,Control+Tab";*/ -/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ -/* kb-mode-complete: "Control+l";*/ -/* kb-row-left: "Control+Page_Up";*/ -/* kb-row-right: "Control+Page_Down";*/ -/* kb-row-up: "Up,Control+p";*/ -/* kb-row-down: "Down,Control+n";*/ -/* kb-row-tab: "";*/ -/* kb-element-next: "Tab";*/ -/* kb-element-prev: "ISO_Left_Tab";*/ -/* kb-page-prev: "Page_Up";*/ -/* kb-page-next: "Page_Down";*/ -/* kb-row-first: "Home,KP_Home";*/ -/* kb-row-last: "End,KP_End";*/ -/* kb-row-select: "Control+space";*/ -/* kb-screenshot: "Alt+S";*/ -/* kb-ellipsize: "Alt+period";*/ -/* kb-toggle-case-sensitivity: "grave,dead_grave";*/ -/* kb-toggle-sort: "Alt+grave";*/ -/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ -/* kb-custom-1: "Alt+1";*/ -/* kb-custom-2: "Alt+2";*/ -/* kb-custom-3: "Alt+3";*/ -/* kb-custom-4: "Alt+4";*/ -/* kb-custom-5: "Alt+5";*/ -/* kb-custom-6: "Alt+6";*/ -/* kb-custom-7: "Alt+7";*/ -/* kb-custom-8: "Alt+8";*/ -/* kb-custom-9: "Alt+9";*/ -/* kb-custom-10: "Alt+0";*/ -/* kb-custom-11: "Alt+exclam";*/ -/* kb-custom-12: "Alt+at";*/ -/* kb-custom-13: "Alt+numbersign";*/ -/* kb-custom-14: "Alt+dollar";*/ -/* kb-custom-15: "Alt+percent";*/ -/* kb-custom-16: "Alt+dead_circumflex";*/ -/* kb-custom-17: "Alt+ampersand";*/ -/* kb-custom-18: "Alt+asterisk";*/ -/* kb-custom-19: "Alt+parenleft";*/ -/* kb-select-1: "Super+1";*/ -/* kb-select-2: "Super+2";*/ -/* kb-select-3: "Super+3";*/ -/* kb-select-4: "Super+4";*/ -/* kb-select-5: "Super+5";*/ -/* kb-select-6: "Super+6";*/ -/* kb-select-7: "Super+7";*/ -/* kb-select-8: "Super+8";*/ -/* kb-select-9: "Super+9";*/ -/* kb-select-10: "Super+0";*/ -/* ml-row-left: "ScrollLeft";*/ -/* ml-row-right: "ScrollRight";*/ -/* ml-row-up: "ScrollUp";*/ -/* ml-row-down: "ScrollDown";*/ -/* me-select-entry: "MousePrimary";*/ -/* me-accept-entry: "MouseDPrimary";*/ -/* me-accept-custom: "Control+MouseDPrimary";*/ - timeout { - action: "kb-cancel"; - delay: 0; - } - filebrowser { - directories-first: true; - sorting-method: "name"; - } -} -/* ========================================================================== - Rofi color theme - - Based on the Gruvbox color scheme for Vim by morhetz - https://github.com/morhetz/gruvbox - - File: gruvbox-dark-soft.rasi - Desc: Gruvbox dark (soft contrast) color theme for Rofi - Author: bardisty <b@bah.im> - Source: https://github.com/bardisty/gruvbox-rofi - Modified: Mon Feb 12 2018 06:04:37 PST -0800 - ========================================================================== */ - -* { - /* Theme settings */ - highlight: bold italic; - scrollbar: true; - - /* Gruvbox dark colors */ - gruvbox-dark-bg0-soft: #32302f; - gruvbox-dark-bg1: #3c3836; - gruvbox-dark-bg3: #665c54; - gruvbox-dark-fg0: #fbf1c7; - gruvbox-dark-fg1: #ebdbb2; - gruvbox-dark-red-dark: #cc241d; - gruvbox-dark-red-light: #fb4934; - gruvbox-dark-yellow-dark: #d79921; - gruvbox-dark-yellow-light: #fabd2f; - gruvbox-dark-gray: #a89984; - - /* Theme colors */ - background: @gruvbox-dark-bg0-soft; - background-color: @background; - foreground: @gruvbox-dark-fg1; - border-color: @gruvbox-dark-gray; - separatorcolor: @border-color; - scrollbar-handle: @border-color; - - normal-background: @background; - normal-foreground: @foreground; - alternate-normal-background: @gruvbox-dark-bg1; - alternate-normal-foreground: @foreground; - selected-normal-background: @gruvbox-dark-bg3; - selected-normal-foreground: @gruvbox-dark-fg0; - - active-background: @gruvbox-dark-yellow-dark; - active-foreground: @background; - alternate-active-background: @active-background; - alternate-active-foreground: @active-foreground; - selected-active-background: @gruvbox-dark-yellow-light; - selected-active-foreground: @active-foreground; - - urgent-background: @gruvbox-dark-red-dark; - urgent-foreground: @background; - alternate-urgent-background: @urgent-background; - alternate-urgent-foreground: @urgent-foreground; - selected-urgent-background: @gruvbox-dark-red-light; - selected-urgent-foreground: @urgent-foreground; -} - -@import "gruvbox-common.rasi" +@theme "/usr/share/rofi/themes/gruvbox-dark-soft.rasi" diff --git a/rofi/rofi-scripts/options b/rofi/rofi-scripts/options new file mode 100644 index 0000000..7232ce2 --- /dev/null +++ b/rofi/rofi-scripts/options @@ -0,0 +1,3 @@ +WLAN einschalten +Verbindung aktivieren +WLAN ausschalten diff --git a/rofi/rofi-scripts/powermenu.sh b/rofi/rofi-scripts/powermenu.sh new file mode 100644 index 0000000..1ac52c2 --- /dev/null +++ b/rofi/rofi-scripts/powermenu.sh @@ -0,0 +1,20 @@ +#!/bin/bash +OPTIONS="Poweroff|Reboot|Log out" + +CHOICE=$(echo -e $OPTIONS | rofi -dmenu -p "Powermenu:" -sep '|') + +case "$CHOICE" in + "Poweroff") + systemctl poweroff & + ;; + "Reboot") + systemctl reboot & + ;; + "Log out") + hyprctl dispatch exit & + ;; + *) + notify-send "Invalid choice or canceled" + ;; +esac + diff --git a/rofi/rofi-scripts/wifi-manager.sh b/rofi/rofi-scripts/wifi-manager.sh new file mode 100644 index 0000000..defbe69 --- /dev/null +++ b/rofi/rofi-scripts/wifi-manager.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +connect_known_wifi() { + KNOWN_WIFIS=$(nmcli connection show --active | awk 'NR>1 {print $1}') + if [[ -z "$KNOWN_WIFIS" ]]; then + notify-send "No known WiFi networks found" + return + fi + SELECTED=$(echo -e "$KNOWN_WIFIS" | rofi -dmenu -p "Known WiFi:") + if [[ -n "$SELECTED" ]]; then + nmcli connection up "$SELECTED" && notify-send "Connected to $SELECTED" || notify-send "Failed to connect to $SELECTED" + fi +} + +# Function to scan for WiFi networks and connect +scan_wifi() { + SCANNED_WIFIS=$(nmcli -f SSID,BARS device wifi list | awk 'NR>1') + if [[ -z "$SCANNED_WIFIS" ]]; then + notify-send "No WiFi networks found" + return + fi + SELECTED=$(echo -e "$SCANNED_WIFIS" | rofi -dmenu -p "Available WiFi:") + if [[ -n "$SELECTED" ]]; then + PASSWORD=$(rofi -dmenu -p "Password for $SELECTED (leave blank if none):") + nmcli device wifi connect "$SELECTED" password "$PASSWORD" && notify-send "Connected to $SELECTED" || notify-send "Failed to connect to $SELECTED" + fi +} + +WIFI_STATE=$(nmcli radio wifi) +if [[ "$WIFI_STATE" == "enabled" ]]; then + OPTIONS="Disable WiFi\n" + CURRENT_NETWORK=$(nmcli connection show --active | grep 'wlan0' | awk 'NR {print $1}') + if [[ "$CURRENT_NETWORK" != "" ]]; then + OPTIONS="${OPTIONS}Disconnect $CURRENT_NETWORK\n" + fi +else + OPTIONS="Enable WiFi\n" +fi + +OPTIONS="${OPTIONS}Connect to known WiFi\nScan for WiFi\nEdit connections" + +CHOICE=$(echo -e $OPTIONS | rofi -dmenu -p "Wifi manager") + +case "$CHOICE" in + "Enable WiFi") + nmcli radio wifi on && notify-send "WiFi enabled" + ;; + "Disable WiFi") + nmcli radio wifi off && notify-send "WiFi disabled" + ;; + "Connect to known WiFi") + connect_known_wifi + ;; + "Scan for WiFi") + scan_wifi + ;; + "Edit connections") + nm-connection-editor & + ;; + "Disconnect $CURRENT_NETWORK") + nmcli connection down id $CURRENT_NETWORK & + ;; + *) + notify-send "Invalid choice or canceled" + ;; +esac + diff --git a/waybar/config.jsonc b/waybar/config.jsonc new file mode 100644 index 0000000..caf9fc8 --- /dev/null +++ b/waybar/config.jsonc @@ -0,0 +1,132 @@ +// -*- 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": 0, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": [ + "hyprland/workspaces", +// "wlr/taskbar", + "hyprland/window" + ], + "modules-center": [ + "clock" + ], + "modules-right": [ + "pulseaudio", + "network", + "power-profiles-daemon", + "backlight", + "battery", + "battery#bat2", + "tray", + "custom/power" + ], + "hyprland/workspaces": { + "on-click": "activate", + "format": "{windows}", + "format-icons": { + "active": "", + "default": "", + "empty": "" + }, + "window-rewrite-default": "", + "window-rewrite": { + "title<.*Mullvad.*>": "", // Windows whose titles contain "youtube" + "class<firefox>": "", // Windows whose classes are "firefox" + "class<kitty>": "", // Windows that contain "foot" in either class or title. For optimization reasons, it will only match against a title if at least one other window explicitly matches against a title. + "class<steam>": "", + "code": "", + "class<nemo>": "", + "class<vlc>": "", + "class<discord>": "", + "title<.*Minecraft.*>": "" + }, + "format-window-separator": " " + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "interval": 1, + "format": "{:%H:%M:%S}", + "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", + "format-alt": "{:%Y-%m-%d}" + }, + "backlight": { + "device": "intel_backlight", + "format": " {percent}%", + "on-scroll-up": "light -A 5", + "on-scroll-down": "light -U 5", + "on-click": "light -S 50" + }, + "battery": { + "interval": 20, + "states": { + "good": 85, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}% {time}", + "tooltip-format": "Zeit Verbleibend: {time}", + "tooltip": true, + "format-time": "{H}:{m}", + "format-discharging-warning": " {icon} {capacity}% {time}", + "format-charging": " {icon} {capacity}% {time}", + "format-plugged": " {icon} {capacity}%", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""], + "full-at": 96, + "design-capacity": true, + }, + "battery#bat2": { + "bat": "BAT2" + }, + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "" + } + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": " {essid} ({signalStrength}%)", + "format-ethernet": " {ipaddr}/{cidr}", + "tooltip-format": "{gwaddr}", + "format-linked": "{ifname} (No IP)", + "format-disconnected": " Disconnected", + "format-alt": " {ipaddr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{icon} {volume}% {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": "pactl set-sink-mute @DEFAULT_SINK@ toggle", + "on-click-right": "pavucontrol" + + } +} + diff --git a/waybar/launch-waybar.sh b/waybar/launch-waybar.sh new file mode 100644 index 0000000..6527d33 --- /dev/null +++ b/waybar/launch-waybar.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +killall waybar + +waybar & diff --git a/waybar/light_in_range.sh b/waybar/light_in_range.sh new file mode 100644 index 0000000..f24c7ed --- /dev/null +++ b/waybar/light_in_range.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if hen + exit 1 +else + echo "String not found." +fi diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..caf0d6d --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,107 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 14px; } + +window#waybar { + background-color: black; + color: white; } + +#clock { + color: black; + background-color: white; } + +/* you can set a style on hover for any module like this */ +#pulseaudio { + background-color: white; + color: black; } + #pulseaudio:hover { + background-color: lightgray; } + #pulseaudio.muted { + background-color: #90b1b1; + color: #2a5c45; } + +#network { + background-color: white; + color: black; } + +/* Using steps() instead of linear as a timing function to limit cpu usage */ +#battery { + background-color: white; + color: black; } + #battery.warning:not(.charging) { + background-color: red; + color: #ffffff; } + +#backlight { + color: black; + background-color: white; } + +#tray { + background-color: white; + color: black; } + +#workspaces button { + opacity: 1; + margin: 0 2px; + color: black; + background-color: lightgray; + border-radius: 0px; } + #workspaces button:hover { + color: black; } + #workspaces button.empty { + background-color: gray; } + #workspaces button.active { + background-color: white; } + #workspaces button.urgent { + background-color: #eb4d4b; } + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#power-profiles-daemon, +#mpd { + padding: 0 10px; + margin: 0 2px; } + +#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; } + +#power-profiles-daemon { + padding-right: 15px; } + +#power-profiles-daemon.performance { + background-color: #f53c3c; + color: #ffffff; } + +#power-profiles-daemon.balanced { + background-color: #2980b9; + color: #ffffff; } + +#power-profiles-daemon.power-saver { + background-color: #2ecc71; + color: #000000; } + +label:focus { + background-color: #000000; } diff --git a/waybar/style.scss b/waybar/style.scss new file mode 100644 index 0000000..aaf64a8 --- /dev/null +++ b/waybar/style.scss @@ -0,0 +1,143 @@ +$background: white; +$foreground: black; + +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 14px; +} + +window#waybar { + background-color: $foreground; + color: $background; +} + +#clock { + color: $foreground; + background-color: $background; +} + +/* you can set a style on hover for any module like this */ +#pulseaudio { + background-color: $background; + color: $foreground; + + &:hover { + background-color: lightgray; + } + + &.muted { + background-color: #90b1b1; + color: #2a5c45; + } + +} + +#network { + background-color: $background; + color: $foreground +} + +/* Using steps() instead of linear as a timing function to limit cpu usage */ +#battery { + background-color: $background; + color: $foreground; + &.warning:not(.charging) { + background-color: red; + color: #ffffff; + } +} + +#backlight { + color: $foreground; + background-color: $background; +} + +#tray { + background-color: $background; + color: $foreground; +} + +#workspaces { + button { + margin: 0 2px; + color: $foreground; + background-color: lightgray; + border-radius: 0px; + cursor: pointer; + + &:hover { + color: $foreground; + } + + &.empty { + background-color: gray; + } + + &.active { + background-color: $background; + } + + &.urgent { + background-color: #eb4d4b; + } + } +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#power-profiles-daemon, +#mpd { + padding: 0 10px; + margin: 0 2px; +} +#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; +} +#power-profiles-daemon { + padding-right: 15px; +} + +#power-profiles-daemon.performance { + background-color: #f53c3c; + color: #ffffff; +} + +#power-profiles-daemon.balanced { + background-color: #2980b9; + color: #ffffff; +} + +#power-profiles-daemon.power-saver { + background-color: #2ecc71; + color: #000000; +} + +label:focus { + background-color: #000000; +} + -- GitLab