diff --git a/home/.Xresources b/home/.Xresources new file mode 100644 index 0000000..26ee695 --- /dev/null +++ b/home/.Xresources @@ -0,0 +1,72 @@ +! ----------------------------------------------------------------------------- +! File: gruvbox-dark.xresources +! Description: Retro groove colorscheme generalized +! Author: morhetz +! Source: https://github.com/morhetz/gruvbox-generalized +! Last Modified: 6 Sep 2014 +! ----------------------------------------------------------------------------- + +! hard contrast: *background: #1d2021 +*background: #282828 +! soft contrast: *background: #32302f +*foreground: #ebdbb2 +! Black + DarkGrey +*color0: #282828 +*color8: #928374 +! DarkRed + Red +*color1: #cc241d +*color9: #fb4934 +! DarkGreen + Green +*color2: #98971a +*color10: #b8bb26 +! DarkYellow + Yellow +*color3: #d79921 +*color11: #fabd2f +! DarkBlue + Blue +*color4: #458588 +*color12: #83a598 +! DarkMagenta + Magenta +*color5: #b16286 +*color13: #d3869b +! DarkCyan + Cyan +*color6: #689d6a +*color14: #8ec07c +! LightGrey + White +*color7: #a89984 +! *color7: #ebdbb2 +*color15: #ebdbb2 + +URxvt.scrollBar: false + +URxvt.font: xft:hack:size=10 +URxvt.letterSpace: -1 + +! Transparency +urxvt*depth: 32 +urxvt*background: rgba:28FF/28FF/28FF/dc28 +! *foreground: #eb00db00b200 +! ! Black + DarkGrey +! *color0: #280028002800 +! *color8: #920083007400 +! ! DarkRed + Red +! *color1: #cc0024001d00 +! *color9: #fb0049003400 +! ! DarkGreen + Green +! *color2: #980097001a00 +! *color10: #b800bb002600 +! ! DarkYellow + Yellow +! *color3: #d70099002100 +! *color11: #fa00bd002f00 +! ! DarkBlue + Blue +! *color4: #450085008800 +! *color12: #8300a5009800 +! ! DarkMagenta + Magenta +! *color5: #b10062008600 +! *color13: #d30086009b00 +! ! DarkCyan + Cyan +! *color6: #68009d006a00 +! *color14: #8e00c0007c00 +! ! LightGrey + White +! *color7: #a80099008400 +! ! *color7: #ebdbb2 +! *color15: #eb00db00b200 diff --git a/home/.config/bspwm/bspwmrc b/home/.config/bspwm/bspwmrc new file mode 100755 index 0000000..5cea6c4 --- /dev/null +++ b/home/.config/bspwm/bspwmrc @@ -0,0 +1,53 @@ +#! /bin/sh + +pgrep -x sxhkd > /dev/null || sxhkd & + +bspc config border_width 2 +bspc config window_gap 5 + +bspc config focused_border_color \#d65d0e +bspc config active_border_color \#928374 +bspc config normal_border_color \#888888 + +bspc config split_ratio 0.52 +bspc config borderless_monocle true +bspc config gapless_monocle true + +# bspc monitor eDPI1 -d I II III IV V +# bspc monitor DP4 -d VI VII VIII IX X + +# bspc monitor eDP1 -d " 1" 2 3 4 5 6 7 8 9 0 + +xrandr --output DP-2 --mode 1920x1080 --rotate normal --output DP-0 --primary --mode 2560x1440 --rotate normal --rate 165.08 --right-of DP-2 +bspc wm -O DP-2 DP-0 +bspc monitor DP-0 -d 1 2 3 4 5 +bspc monitor DP-2 -d 6 7 8 9 0 +bspc monitor DP-2 -s DP-0 + +bspc config top_padding 36 + +xinput set-prop 'BenQ ZOWIE BenQ ZOWIE Gaming Mouse' 'libinput Accel Speed' -0.6 + +if type "xrandr"; then + for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do + MONITOR=$m polybar --reload example & + done +else + polybar --reload example & +fi + +# bspc rule -a Gimp desktop='^8' state=floating follow=on +# bspc rule -a Chromium desktop='^2' +# bspc rule -a mplayer2 state=floating +# bspc rule -a Kupfer.py focus=on +bspc rule -a Screenkey manage=off +bspc rule -a Pavucontrol state=floating rectangle=700x500+1210+41 +bspc rule -a Nm-connection-editor state=floating +bspc rule -a feh state=floating +bspc rule -a Godot_Engine state=floating + +nm-applet & +xsetroot -cursor_name left_ptr +feh --bg-scale ~/Media/Images/andromeda.jpg & +picom --config ~/.config/picom/picom.conf & +dbus-update-activation-environment --all diff --git a/home/.config/hypr/hyprland.conf b/home/.config/hypr/hyprland.conf new file mode 100644 index 0000000..0fd220f --- /dev/null +++ b/home/.config/hypr/hyprland.conf @@ -0,0 +1,391 @@ + +# ####################################################################################### +# AUTOGENERATED HYPR CONFIG. +# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, +# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +# ####################################################################################### + +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ + +# Please note not all available settings / options are set here. +# For a full list, see the wiki + +# 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 + + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +#monitor=,preferred,auto,auto +monitor=DP-3, highrr, 1920x0, 1 #, bitdepth, 10 +monitor=DP-4, 1920x1080, 0x0, 1 +monitor=Unknown-1, disable + + +workspace=1,monitor:DP-3 +workspace=2,monitor:DP-3 +workspace=3,monitor:DP-3 +workspace=4,monitor:DP-3 +workspace=5,monitor:DP-3 +workspace=6,monitor:DP-4 +workspace=7,monitor:DP-4 +workspace=8,monitor:DP-4 +workspace=9,monitor:DP-4 +workspace=10,monitor:DP-4 + + +xwayland { + force_zero_scaling = true +} + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$fileManager = GTK_THEME="Adwaita:dark" nautilus +$menu = wofi --show drun --theme /home/kirreen/.local/share/rofi/themes/tokyonight/tokyonight.rasi + + +################# +### 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 = waybar & hyprpaper #& firefox +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = vesktop & nheko +exec-once = env LD_PRELOAD=/usr/lib32/libextest.so /usr/bin/steam-runtime %U -pipewire +# env XDG_SESSION_TYPE=x11 discord + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = WLR_DRM_DEVICES,/home/kirreen/.config/hypr/card +env = HYPRSHOT_DIR,/home/kirreen/Pictures/Screenshots +env = GTK_THEME="Adwaita:dark" + +# https://www.reddit.com/r/hyprland/comments/1byyrix/help_dolphin_theming/ +#env = QT_QPA_PLATFORM,wayland +#env = QT_STYLE_OVERRIDE,BreezeDark +#env = QT_QPA_PLATFORMTHEME,qt6ct +#env = XDG_SESSION_DESKTOP,KDE +#env = XDG_CURRENT_DESKTOP,KDE + +cursor { + no_hardware_cursors = true +} + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 10 + + 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 = 10 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = true + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsIn, 1, 3, default, slide + animation = windowsOut, 1, 3, default, slide + #animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +# 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 = se + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + sensitivity = -.76 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } +} + +# 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 +} + + +#################### +### KEYBINDINGSS ### +#################### + +# 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, W, killactive, +bind = $mainMod, Escape, exit, +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, T, togglefloating, +bind = $mainMod, Space, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +#bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, F, fullscreen, + +# Scrot +bind = $mainMod SHIFT, S, exec, hyprshot -m region + +# 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, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d + +# 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, movetoworkspacesilent, 1 +bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 +bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 +bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 +bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 +bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 +bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 +bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 +bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 +bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 + +# Example special workspace (scratchpad) +# bind = $mainMod, H, togglespecialworkspace, magic +# bind = $mainMod SHIFT, H, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +# bind = $mainMod, mouse_down, workspace, e+1 +# bind = $mainMod, mouse_up, workspace, e-1 + +# Scroll through existing workspaces with Ctrl + mainMod + arrows +bind = $mainMod CTRL, right, workspace, e-1 +bind = $mainMod CTRL, left, workspace, e+1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Send "mute" to discord, super M => Ctrl Shift M +bind = SUPER, M, exec, hyprctl dispatch sendshortcut CTRL SHIFT, M, class:\(vesktop\) + +# Alt tab-ish +bind = ALT, TAB, exec, hyprctl dispatch focuscurrentorlast + +# Media keys - https://www.reddit.com/r/hyprland/comments/1707yb8/probably_a_stupid_question_how_do_i_get_my_media/ +# l -> do stuff even when locked +# e -> repeats when key is held +bindle=, XF86AudioRaiseVolume, exec, vol --up +bindle=, XF86AudioLowerVolume, exec, vol --down +bindle=, XF86MonBrightnessUp, exec, bri --up +bindle=, XF86MonBrightnessDown, exec, bri --down +bindle=, XF86Search, exec, launchpad +# bindl=, XF86AudioMute, exec, amixer set Master toggle +bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindl=, XF86AudioPlay, exec, playerctl play-pause # the stupid key is called play , but it toggles +bindl=, XF86AudioNext, exec, playerctl next +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, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +# Workspaces +windowrulev2 = float, workspace: 3 + +# Windows +windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. +#windowrulev2 = workspace 4, title:^.*(IronGate).(Valheim) + +# Games +windowrulev2 = workspace 4 silent, class:^(valheim.x86_64) +windowrulev2 = fullscreen, class:^(valheim.x86_64) +windowrulev2 = workspace 4 silent, class:^(steam_app_1364780) +windowrulev2 = fullscreen, class:^(steam_app_1364780) +windowrulev2 = workspace 4 silent, class:^(steam_app_1850570) +windowrulev2 = fullscreen, class:^(steam_app_1850570) +windowrulev2 = workspace 4 silent, class:^(steam_app) +windowrulev2 = fullscreen, class:^(steam_app) +windowrulev2 = workspace 4 silent, class:^(wowclassic.exe) +windowrulev2 = fullscreen, class:^(wowclassic.exe) +#windowrulev2 = workspace 4, title:^(Street Fighter 6) +#windowrulev2 = fullscreen, title:^(Street Fighter 6) + +# Steam +windowrulev2 = noinitialfocus, class:^(steam) +windowrulev2 = float, class:^(steam)$ +# windowrulev2 = workspace 3 silent, class:^(steam)$ +windowrulev2 = workspace 3 silent, title:^(Steam)$ +windowrulev2 = workspace 3 silent, title:^(Friends List)$ +windowrulev2 = workspace 3 silent, title:^(tollyx) +# steam chat lol +windowrulev2 = workspace 3 silent, title:^(Nalleball) +windowrulev2 = workspace 3 silent, title:(.* \+ . Chat) +windowrulev2 = size 576 499, title:^(tollyx) +windowrulev2 = move 1612 57, title:^(tollyx) +windowrulev2 = size 576 499, title:^(Nalleball) +windowrulev2 = move 1612 57, title:^(Nalleball) +windowrulev2 = size 576 499, title:(* \+ . Chat) +windowrulev2 = move 1612 57, title:(* \+ . Chat) + +windowrulev2 = float, title:^(Steam Big Picture Mode) +windowrulev2 = workspace 4, title:^(Steam Big Picture Mode) +# windowrulev2 = fullscreen, title:^(Steam Big Picture Mode) +windowrulev2 = size 1579 1363, title:^(Steam)$ +windowrulev2 = move 10 53, title:^(Steam)$ +windowrulev2 = size 1280 900, title:^(Steam Settings) +windowrulev2 = center, title:^(Steam Settings) +windowrulev2 = size 353 1363, title:^(Friends List) +windowrulev2 = move 2189 56, title:^(Friends List) +windowrulev2 = noinitialfocus, title:^(notificationtoasts_) +# windowrulev2 = float, title:^(notificationtoasts_) +windowrulev2 = workspace unset, title:^(notificationtoasts_) +windowrule = animation popin, title:^(notificationtoasts_) + +# Chats +windowrulev2 = noinitialfocus, class:^(nheko) +windowrulev2 = workspace 7 silent, class:^(nheko) +windowrulev2 = noinitialfocus, class:^(vesktop) +windowrulev2 = workspace 7 silent, class:^(vesktop) + +# Util +windowrulev2 = opacity 0.0 override, class:^(xwaylandvideobridge)$ +windowrulev2 = noanim, class:^(xwaylandvideobridge)$ +windowrulev2 = noinitialfocus, class:^(xwaylandvideobridge)$ +windowrulev2 = maxsize 1 1, class:^(xwaylandvideobridge)$ +windowrulev2 = noblur, class:^(xwaylandvideobridge)$ + +# Style +windowrule = noblur, ^(firefox)$ +#windowrule = opacity 0.95 override 0.95 override 0.95 override, ^(kitty)$ diff --git a/home/.config/hypr/hyprpaper.conf b/home/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..e366db8 --- /dev/null +++ b/home/.config/hypr/hyprpaper.conf @@ -0,0 +1,4 @@ +#preload = /usr/share/hyprland/wall2.png +# wallpaper = , /usr/share/hyprland/wall2.png +preload = ~/Pictures/Wallpaper/outerwilds.webp +wallpaper = , ~/Pictures/Wallpaper/outerwilds.webp diff --git a/home/.config/kitty/kitty.conf b/home/.config/kitty/kitty.conf new file mode 100644 index 0000000..35f0ea3 --- /dev/null +++ b/home/.config/kitty/kitty.conf @@ -0,0 +1,8 @@ +include /usr/share/kitty/themes/gruvbox/gruvbox_dark_hard.conf + +background_opacity 0.985 + +font_family Hack +italic_font auto +bold_font auto +bold_italic_font auto diff --git a/home/.config/nvim/init.vim b/home/.config/nvim/init.vim new file mode 100644 index 0000000..13b1191 --- /dev/null +++ b/home/.config/nvim/init.vim @@ -0,0 +1,26 @@ +" syntax on +set nu + +let g:gruvbox_italic=1 +colorscheme gruvbox +hi normal cterm=NONE ctermbg=NONE ctermfg=15 gui=NONE +highlight Normal ctermbg=none +highlight NonText ctermbg=none + +highlight Normal guibg=none +highlight NonText guibg=none + +set tabstop=4 +set ai +set noexpandtab +set shiftwidth=0 + +set mouse= + +" keybinds +let mapleader = "," +noremap y "+y +noremap p "+p +noremap Y "*y +noremap P "*p +nnoremap :noh diff --git a/home/.config/picom/picom.conf b/home/.config/picom/picom.conf new file mode 100644 index 0000000..1dc1e15 --- /dev/null +++ b/home/.config/picom/picom.conf @@ -0,0 +1,442 @@ +################################# +# Shadows # +################################# + + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +# shadow = false +shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +# shadow-radius = 12 +shadow-radius = 20; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +# shadow-opacity = .75 + +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +shadow-offset-x = -12; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = -12; + +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 + +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 + +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 + +# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue) +# shadow-color = "#000000" + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + "name = 'Notification'", + "class_g = 'Conky'", + "class_g ?= 'Notify-osd'", + "class_g = 'Cairo-clock'", + "_GTK_FRAME_EXTENTS@:c" +]; + +# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window. +# clip-shadow-above = [] + +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" + +# Crop shadow of a window fully on a particular Xinerama screen to the screen. +# xinerama-shadow-crop = false + + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.05; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.05; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +fade-delta = 3 + +# Specify a list of conditions of windows that should not be faded. +# fade-exclude = [] + +# Do not fade on window open/close. +# no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# +# mark-overedir-focused = true; + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +inactive-opacity = 0.75; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +frame-opacity = 0.45; + +# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +# active-opacity = 1.0 + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +inactive-dim = 0.0 + +# Specify a list of conditions of windows that should never be considered focused. +# focus-exclude = [] +# focus-exclude = [ "class_g = 'Cairo-clock'" ]; +# focus-exclude = [ "class_g = 'URxvt'" ]; + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 1.0 + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +opacity-rule = [ "90:class_g = 'URxvt' && !focused", + "100:class_g = 'URxvt' && focused", + "86:class_g = 'Pavucontrol' && focused", + "70:class_g = 'Pavucontrol' && !focused", + "93:class_g = 'nheko' && !focused", + "75:window_type = 'dialog' && !focused", + "85:window_type = 'dialog' && focused", + "98:class_g = 'firefox' && !focused", + "88:class_g = 'Google-chrome' && !focused", + "98:class_g = 'Polybar'", + "100:class_g = 'discord'", + "98:class_g = 'mpv'" ]; + + +################################# +# Corners # +################################# + +# Sets the radius of rounded window corners. When > 0, the compositor will +# round the corners of windows. Does not interact well with +# `transparent-clipping`. +corner-radius = 10 + +# Exclude conditions for rounded corners. +rounded-corners-exclude = [ + "window_type = 'dock'", +# "class_g = 'Escrotum'", + "window_type = 'desktop'" +]; + + +################################# +# Background-Blurring # +################################# + + +# Parameters for background blurring, see the *BLUR* section for more information. +blur-method = "gaussian" +blur-size = 10 + +blur-deviation = 3 +blur-strength = 5 + +# Blur background of semi-transparent / ARGB windows. +# Bad in performance, with driver-dependent behavior. +# The name of the switch may change without prior notifications. +# +# blur-background = false + +# Blur background of windows when the window frame is not opaque. +# Implies: +# blur-background +# Bad in performance, with driver-dependent behavior. The name may change. +# +# blur-background-frame = false + + +# Use fixed blur strength rather than adjusting according to window opacity. +# blur-background-fixed = false + + +# Specify the blur convolution kernel, with the following format: +# example: +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# +# blur-kern = "" +blur-kern = "3x3box"; + + +# Exclude conditions for background blur. +# blur-background-exclude = [] +blur-background-exclude = [ + # "window_type = 'dock'", + # "window_type = 'desktop'", + "_GTK_FRAME_EXTENTS@:c", + "class_g = 'Escrotum'", +# "class_g = 'Polybar'" +]; + +################################# +# General Settings # +################################# + +# Enable remote control via D-Bus. See the man page for more details. +# dbus = true + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +# backend = "glx" +backend = "glx"; + +# Enable/disable VSync. +# vsync = false +vsync = true; + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = false; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; + +# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true; + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. This usually means windows from the same application +# will be considered focused or unfocused at the same time. +# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too. +# +# detect-client-leader = false + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +glx-no-stencil = true; + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn every time, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true; + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window +# contents. Read the man page for a detailed explanation of the interface. +# +# window-shader-fg = "default" + +# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar +# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg. +# +# window-shader-fg-rule = [ +# "my_shader.frag:window_type != 'dock'" +# ] + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +# transparent-clipping = false + +# Specify a list of conditions of windows that should never have transparent +# clipping applied. Useful for screenshot tools, where you need to be able to +# see through transparent parts of the window. +# +# transparent-clipping-exclude = [] + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "warn"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = "/path/to/your/log/file" + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = "/path/to/your/log/file" + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# clip-shadow-above::: +# Controls whether shadows that would have been drawn above the window should +# be clipped. Useful for dock windows that should have no shadow painted on top. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; clip-shadow-above = true; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.8; } + dropdown_menu = { opacity = 0.8; } +}; diff --git a/home/.config/sxhkd/resize.sh b/home/.config/sxhkd/resize.sh new file mode 100755 index 0000000..0ef7aad --- /dev/null +++ b/home/.config/sxhkd/resize.sh @@ -0,0 +1,2 @@ +bspc node -z left 1920 00 +bspc node -z left -660 00 diff --git a/home/.config/sxhkd/sxhkdrc b/home/.config/sxhkd/sxhkdrc new file mode 100644 index 0000000..bc39ac2 --- /dev/null +++ b/home/.config/sxhkd/sxhkdrc @@ -0,0 +1,163 @@ +# +# wm independent hotkeys +# + +# terminal emulator +super + Return + urxvt + +super + e + nemo + +# program launcher +super + @space + dmenu_run -fn ttf-hack + +# make sxhkd reload its configuration files: +super + shift + Escape + pkill -USR1 -x sxhkd + +super + n + nm-connection-editor + +super + shift + s + escrotum -s -C + #scrot -s '~/Media/Images/Screenshots/%F_%T.png' -e 'xclip -selection clip -t image/png "$f" + +# +# laptop specific thingys +# +XF86MonBrightnessUp + echo $(( $(cat /sys/class/backlight/intel_backlight/brightness) + 10)) > /sys/class/backlight/intel_backlight/brightness + +XF86MonBrightnessDown + echo $(( $(cat /sys/class/backlight/intel_backlight/brightness) - 10)) > /sys/class/backlight/intel_backlight/brightness + +XF86AudioRaiseVolume + pactl set-sink-volume @DEFAULT_SINK@ +5% + +XF86AudioLowerVolume + pactl set-sink-volume @DEFAULT_SINK@ -5% + +XF86AudioMute + pactl set-sink-mute @DEFAULT_SINK@ toggle + +# +# bspwm hotkeys +# + +# quit/restart bspwm +super + alt + {q,r} + bspc {quit,wm -r} + +# close and kill +super + {_,shift + }w + bspc node -{c,k} + +# alternate between the tiled and monocle layout +super + m + bspc desktop -l next + +# rotate layout +super + r + bspc node @/ -R 90 + +# send the newest marked node to the newest preselected node +super + y + bspc node newest.marked.local -n newest.!automatic.local + +# swap the current node and the biggest window +super + g + bspc node -s biggest.window + + +# make current window ~80 char wide +super + p + ~/.config/sxhkd/resize.sh + + +# +# state/flags +# + +# set the window state +super + {t,shift + t,s,f} + bspc node -t {tiled,pseudo_tiled,floating,fullscreen} + +# set the node flags +super + ctrl + {m,x,y,z} + bspc node -g {marked,locked,sticky,private} + +# +# focus/swap +# + +# focus the node in the given direction +super + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} + +# focus the node for the given path jump +super + {p,b,comma,period} + bspc node -f @{parent,brother,first,second} + +# focus the next/previous window in the current desktop +super + {_,shift + }c + bspc node -f {next,prev}.local.!hidden.window + +# focus the next/previous window in the current desktop +alt + {_,shift + }Tab + bspc node -f {next,prev}.local.!hidden.window + +# focus the next/previous desktop in the current monitor +super + bracket{left,right} + bspc desktop -f {prev,next}.local + +# focus the last node/desktop +super + {grave,Tab} + bspc {node,desktop} -f last + +# focus the older or newer node in the focus history +super + {o,i} + bspc wm -h off; \ + bspc node {older,newer} -f; \ + bspc wm -h on + +# focus or send to the given desktop +super + {_,shift + }{1-9,0} + bspc {desktop -f,node -d} '^{1-9,10}' + +# +# preselect +# + +# preselect the direction +super + ctrl + {h,j,k,l} + bspc node -p {west,south,north,east} + +# preselect the ratio +super + ctrl + {1-9} + bspc node -o 0.{1-9} + +# cancel the preselection for the focused node +super + ctrl + space + bspc node -p cancel + +# cancel the preselection for the focused desktop +super + ctrl + shift + space + bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel + +# +# move/resize +# + +# expand a window by moving one of its side outward +super + alt + {h,j,k,l} + bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} + +# contract a window by moving one of its side inward +super + alt + shift + {h,j,k,l} + bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} + +# move a floating window +super + {Left,Down,Up,Right} + bspc node -v {-20 0,0 20,0 -20,20 0} diff --git a/home/.config/waybar/config.jsonc b/home/.config/waybar/config.jsonc new file mode 100644 index 0000000..e871891 --- /dev/null +++ b/home/.config/waybar/config.jsonc @@ -0,0 +1,204 @@ +// -*- 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": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": [ + "hyprland/workspaces", + "hyprland/mode", + "hyprland/scratchpad", + "custom/media" + ], + "modules-center": [ + "hyprland/window" + ], + "modules-right": [ + // "mpd", + "idle_inhibitor", + "pulseaudio", + "network", + "power-profiles-daemon", + "cpu", + "memory", + "temperature", + //"backlight", + //"keyboard-state", + "sway/language", + "battery", + "battery#bat2", + "clock", + "tray" + ], + // Modules configuration + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "warp-on-scroll": false, + "format": "{name}: {icon}", + "format-icons": { + "1": "", + "2": "󰖟", + "3": "", + "4": "󱎓", + "5": "", + "6": "󰖟", + "7": "", + "urgent": "", + "focused": "", + "default": "" + } + }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "sway/mode": { + "format": "{}" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": ["", ""], + "tooltip": true, + "tooltip-format": "{app}: {title}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 5, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + "hwmon-path": "/sys/class/hwmon/hwmon0/temp1_input", + "critical-threshold": 90, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-full": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "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": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "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": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "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 + } +} diff --git a/home/.config/waybar/config.jsonc.bak2 b/home/.config/waybar/config.jsonc.bak2 new file mode 100644 index 0000000..715ec4e --- /dev/null +++ b/home/.config/waybar/config.jsonc.bak2 @@ -0,0 +1,130 @@ +{ + "layer": "top", + "position": "top", + "margin-top": 10, + "margin-left": 10, + "margin-right": 10, + "height": 30, + "spacing": 0, + "modules-left": ["custom/launcher","hyprland/workspaces","cpu","memory"], + "modules-center": ["custom/song_name","custom/pre","custom/spotify","custom/next"], + "modules-right": ["tray","network", "pulseaudio","clock","custom/powermenu"], + +"hyprland/workspaces": { + "on-click": "activate", + "format": "{icon}", + "format-icons": { + "default": "", + "1": "", + "2": "", + "3": "", + "4": "", + "active": "󱓻", + "urgent": "󱓻", + }, + "persistent_workspaces": { + "*": 4, + } + }, + "memory": { + "interval": 3, + "format": "  {}% ", + "max-length": 10 + }, + "cpu": { + "interval": 1, + "format": "  {}% ", + "max-length": 10 + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + "tooltip-format": "{calendar}", + "format-alt": "  {:%a, %d %b %Y} ", + "format": "  {:%H:%M} ", + "calendar": { + "weeks-pos" : "none", + "on-scroll" : 1, + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click-right": "none", + "on-click-forward": "tz_up", + "on-click-backward": "tz_down", + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + } + }, + "network": { + "format-wifi": "{icon}", + "format-disconnected": "󰤭 ", + "format-icons": ["󰤯 ","󰤟 ","󰤢 ","󰤥 ","󰤨 "], + "tooltip-format-wifi": "{essid}", + "tooltip-format-disconnected": "Disconnected", + "nospacing": 1, + }, + "pulseaudio": { + "format": "{icon}", + "nospacing": 1, + "tooltip-format": "Volume : {volume}%", + "format-muted": "󰝟 ", + "format-icons": { + "headphone": " ", + "default": ["󰕿 ", "󰖀 ", "󰕾 "] + }, + "on-click": "pamixer -t", + "on-click-right": "pavucontrol", + "scroll-step": 5, + }, + "custom/launcher": { + "format": "  ", + "tooltip": false, + "on-click": "/home/tdm/.config/rofi/launchers/misc/launcher.sh &" + }, + "custom/next": { + "exec": "python3 ~/.config/waybar/scripts/next.py --player spotify", + "format": "{}", + "tooltip": false, + "on-click": "playerctl next", + "return-type": "json", + }, + "custom/pre": { + "exec": "python3 ~/.config/waybar/scripts/pre.py --player spotify", + "format": "{}", + "tooltip": false, + "on-click": "playerctl previous", + "return-type": "json", + }, + "custom/powermenu": { + "format": "⏻ ", + "tooltip": false, + "on-click": "~/.config/rofi/powermenu/type-2/powermenu.sh &" + }, + "custom/ibus": { + "format": "{}", + "exec": "/home/tdm/.config/waybar/scripts/input.sh &", + "interval": 1, + "tooltip": false, + "tooltip-format": "{}", + "on-click": "/home/tdm/.config/waybar/scripts/ibus.sh &", + }, + "custom/spotify": { + "exec": "python3 ~/.config/waybar/scripts/mediaplayer.py --player spotify", + "format": "{}", + "return-type": "json", + "on-click": "playerctl play-pause", + }, + "custom/song_name": { + "exec": "python3 ~/.config/waybar/scripts/spotify.py --player spotify", + "format": "{}", + "return-type": "json", + }, +} diff --git a/home/.config/waybar/style.css b/home/.config/waybar/style.css new file mode 100644 index 0000000..47f6579 --- /dev/null +++ b/home/.config/waybar/style.css @@ -0,0 +1,166 @@ +/* + ******************************************** + *░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░* + *░░█▀█░█░░░█░█░█▀▀░░░█░█░█░░░▀█▀░█▀▄░█▀█░░* + *░░█▀▀░█░░░█░█░▀▀█░░░█░█░█░░░░█░░█▀▄░█▀█░░* + *░░▀░░░▀▀▀░▀▀▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░▀░▀░▀░▀░░* + *░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░* + ******************************************** + */ + +* { + border: none; + border-radius: 0; + font-family: Nerd Font Hack; + font-size: 14px; + min-height: 24px; +} + +window#waybar { + background: transparent; +} + +window#waybar.hidden { + opacity: 0.2; +} + +#window { + margin-top: 8px; + padding-left: 16px; + padding-right: 16px; + border-radius: 26px; + transition: none; + /* + color: #f8f8f2; + background: #282a36; + */ + color: white; + background: #585858; +} + +window#waybar.termite #window, +window#waybar.Firefox #window, +window#waybar.Navigator #window, +window#waybar.PCSX2 #window { + color: #4d4d4d; + background: #e6e6e6; +} + +#workspaces { + margin-top: 8px; + margin-left: 12px; + margin-bottom: 0; + border-radius: 26px; + background: #282a36; + transition: none; +} + +#workspaces button { + transition: none; + color: #f8f8f2; + background: transparent; + font-size: 16px; +} + +#workspaces button.active { + color: #9aedfe; +} + +#workspaces button:hover { + transition: none; + box-shadow: inherit; + text-shadow: inherit; + color: #ff79c6; +} + +#mpd { + margin-top: 8px; + margin-left: 8px; + padding-left: 16px; + padding-right: 16px; + margin-bottom: 0; + border-radius: 26px; + background: #282a36; + transition: none; + color: #4d4d4d; + background: #5af78e; +} + +#mpd.disconnected, +#mpd.stopped { + color: #f8f8f2; + background: #282a36; +} + +#network { + margin-top: 8px; + margin-left: 8px; + padding-left: 16px; + padding-right: 16px; + margin-bottom: 0; + border-radius: 26px; + transition: none; + color: #4d4d4d; + background: #bd93f9; +} + +#pulseaudio { + margin-top: 8px; + margin-left: 8px; + padding-left: 16px; + padding-right: 16px; + margin-bottom: 0; + border-radius: 26px; + transition: none; + color: #4d4d4d; + background: #9aedfe; +} + +#temperature { + margin-top: 8px; + margin-left: 8px; + padding-left: 16px; + padding-right: 16px; + margin-bottom: 0; + border-radius: 26px; + transition: none; + color: #4d4d4d; + background: #5af78e; +} + +#cpu { + margin-top: 8px; + margin-left: 8px; + padding-left: 16px; + padding-right: 16px; + margin-bottom: 0; + border-radius: 26px; + transition: none; + color: #4d4d4d; + background: #f1fa8c; +} + +#memory { + margin-top: 8px; + margin-left: 8px; + padding-left: 16px; + padding-right: 16px; + margin-bottom: 0; + border-radius: 26px; + transition: none; + color: #4d4d4d; + background: #ff6e67; +} + +#clock { + margin-top: 8px; + margin-left: 8px; + margin-right: 12px; + padding-left: 16px; + padding-right: 16px; + margin-bottom: 0; + border-radius: 26px; + transition: none; + color: #f8f8f2; + background: #282a36; +} diff --git a/home/.config/wofi/style.css b/home/.config/wofi/style.css new file mode 100644 index 0000000..634543f --- /dev/null +++ b/home/.config/wofi/style.css @@ -0,0 +1,51 @@ +window { +margin: 0px; +border: 1px solid #bd93f9; +background-color: #282a36; +} + +#input { +margin: 5px; +border: none; +color: #f8f8f2; +background-color: #44475a; +} + +#inner-box { +margin: 5px; +border: none; +background-color: #282a36; +} + +#outer-box { +margin: 5px; +border: none; +background-color: #282a36; +} + +#scroll { +margin: 0px; +border: none; +} + +#text { +margin: 5px; +border: none; +color: #f8f8f2; +} + +#entry.activatable #text { +color: #282a36; +} + +#entry > * { +color: #f8f8f2; +} + +#entry:selected { +background-color: #44475a; +} + +#entry:selected #text { +font-weight: bold; +} diff --git a/home/.xinitrc b/home/.xinitrc new file mode 100755 index 0000000..f6f85e6 --- /dev/null +++ b/home/.xinitrc @@ -0,0 +1,6 @@ +setxkbmap se +xrdb -merge ~/.Xresources +# if [xrandr | grep "DP4 connected"] + #xrandr --output eDP1 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output DP4 --mode 1920x1080 --pos 1920x0 --rotate normal +# fi +exec bspwm diff --git a/home/.zshrc b/home/.zshrc new file mode 100644 index 0000000..872ef49 --- /dev/null +++ b/home/.zshrc @@ -0,0 +1,120 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH + +# Path to your Oh My Zsh installation. +ZSH=/usr/share/oh-my-zsh/ + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time Oh My Zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="gentoo" + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git vi-mode) + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch $(uname -m)" + +# Set personal aliases, overriding those provided by Oh My Zsh libs, +# plugins, and themes. Aliases can be placed here, though Oh My Zsh +# users are encouraged to define aliases within a top-level file in +# the $ZSH_CUSTOM folder, with .zsh extension. Examples: +# - $ZSH_CUSTOM/aliases.zsh +# - $ZSH_CUSTOM/macos.zsh +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" + +ZSH_CACHE_DIR=$HOME/.cache/oh-my-zsh +if [[ ! -d $ZSH_CACHE_DIR ]]; then + mkdir $ZSH_CACHE_DIR +fi + +source $ZSH/oh-my-zsh.sh + +# erik +export EDITOR=/usr/bin/nvim +export SUDO_EDITOR=/usr/bin/nvim + +alias ls='ls --color=auto -l' +alias vim='nvim' + +HISTFILE=~/.histfile +HISTSIZE=10000 +SAVEHIST=1000 diff --git a/root/modprobe_nvidia.conf b/root/modprobe_nvidia.conf new file mode 100644 index 0000000..d2a1383 --- /dev/null +++ b/root/modprobe_nvidia.conf @@ -0,0 +1,3 @@ +options nvidia_drm modeset=1 fbdev=1 +options nvidia NVreg_PreserveVideoMemoryAllocations=1 +options nvidia NVreg_TemporaryFilePath=/var/tmp diff --git a/root/sddm_theme.conf b/root/sddm_theme.conf new file mode 100644 index 0000000..8fe64b1 --- /dev/null +++ b/root/sddm_theme.conf @@ -0,0 +1,2 @@ +[Theme] +Current=sddm-astronaut-theme