diff --git a/.bash_profile b/.bash_profile new file mode 100644 index 0000000..bcf4949 --- /dev/null +++ b/.bash_profile @@ -0,0 +1,12 @@ +# +# ~/.bash_profile +# + +[[ -f ~/.bashrc ]] && . ~/.bashrc + +# Start uwsm, which starts hyprland +if uwsm check may-start; then + exec uwsm start hyprland.desktop +fi + +fastfetch diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..baa4c86 --- /dev/null +++ b/.bashrc @@ -0,0 +1,12 @@ +# +# ~/.bashrc +# + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +alias ls='ls --color=auto' +alias grep='grep --color=auto' +PS1='[\u@\h \W]\$ ' + +fastfetch diff --git a/fastfetch/config.jsonc b/fastfetch/config.jsonc new file mode 100644 index 0000000..e2a6f74 --- /dev/null +++ b/fastfetch/config.jsonc @@ -0,0 +1,79 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "source": "arch_small", + "padding": { + "top": 2, + "right": 4 + } + }, + "display": { + "separator": " ", + "bar": { + "width": 10, // Width of percentage bars + "charElapsed": "■", // Character for elapsed portion + "charTotal": "-" // Character for total portion + }, + "percent": { + "type": 3, // 1=number, 2=bar, 3=both, 9=colored number + "color": { + "green": "green", + "yellow": "light_yellow", + "red": "light_red" + } + }, + "color": { + "keys": "cyan", // Key color + "title": "light_blue" // Title color + }, + }, + "modules": [ + "break", + { + "type": "os", + "key": "{icon} " + }, + { + "type": "wm", + "key": "{icon} " + }, + { + "type": "uptime", + "key": "{icon} " + }, + { + "type": "cpu", + "key": "{icon} ", + "format": "{name} ({cores-physical}C/{cores-logical}T) @ {freq-max}" + }, + { + "type": "memory", + "key": "{icon} " + }, + { + "type": "disk", + "key": "{icon} " + }, + { + "type": "battery", + "key": "{icon} ", + "format": "{capacity-bar} {capacity} {time-hours}H {time-minutes}M" + }, + { + "key": "{icon} ", + "type": "publicip", + "timeout": 1000 + }, + "break", + { + "type": "colors", + "symbol": "circle" + }, + { + "type": "terminalfont", + "key": "{icon}" + }, + "break", + "break" + ] +} diff --git a/hypr/conf.d/input.conf b/hypr/conf.d/input.conf new file mode 100644 index 0000000..4982dd2 --- /dev/null +++ b/hypr/conf.d/input.conf @@ -0,0 +1,25 @@ +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = de + kb_variant = nodeadkeys + 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 = true +} diff --git a/hypr/conf.d/keybinds.conf b/hypr/conf.d/keybinds.conf new file mode 100644 index 0000000..838b4ec --- /dev/null +++ b/hypr/conf.d/keybinds.conf @@ -0,0 +1,62 @@ +################### +### 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, B, exec, $browser +bind = $mainMod, Y, exec, $filemanager +bind = $mainMod, Q, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, Y, exec, $fileManager +bind = $mainMod, F, togglefloating, +bind = $mainMod, D, 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 + +# 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 + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous diff --git a/hypr/conf.d/theme.conf b/hypr/conf.d/theme.conf new file mode 100644 index 0000000..0f771e2 --- /dev/null +++ b/hypr/conf.d/theme.conf @@ -0,0 +1,83 @@ +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 20 + + 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 = true + + # 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 = 5 + rounding_power = 5 + + # Change transparency of focused and unfocused windows + active_opacity = 1 + inactive_opacity = 1 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = false + size = 10 + passes = 1 + + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = 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 +} + +# "Smart gaps" / "No gaps when only" diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..f504635 --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,85 @@ +# https://wiki.hyprland.org/Configuring/ + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,preferred,auto,1.566667 +#monitor=,preferred,auto,2 + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$filemanager = yazi +$menu = wofi --show drun +$browser = firefox + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +exec-once = waybar +exec-once = dunst + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Ignore maximize requests from apps. You'll probably like this. +windowrule = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 + +# Make browser not blur and have no gap +windowrule = noblur, class:$browser +#windowrule = opacity 1, class:$browser + +# Smart gaps +workspace = w[tv1], gapsout:0, gapsin:0 +workspace = f[1], gapsout:0, gapsin:0 +windowrule = bordersize 0, floating:0, onworkspace:w[tv1] +windowrule = rounding 0, floating:0, onworkspace:w[tv1] +windowrule = bordersize 0, floating:0, onworkspace:f[1] +windowrule = rounding 0, floating:0, onworkspace:f[1] + +################### +### OTHER STUFF ### +################### +# 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. :( +} + +source = ~/.config/hypr/conf.d/* diff --git a/install.bash b/install.bash index 4b501c8..225db6f 100644 --- a/install.bash +++ b/install.bash @@ -1,6 +1,14 @@ #!/bin/bash # Run as root -# Create symbolic links in .conf manually -pacman -S sway swaybg swayidle swaylock waybar wofi neovim nano man xorg-wayland pavucontrol grim slurp brightnessctl +ln -s hypr ../.config/hypr + +# Hyperland stuff +pacman -S uwsm hyprland xdg-desktop-portal-hyprland + +# Basic essentials +pacman -S waybar dunst libnotify wofi pipewire brightnessctl man-db man-pages + +# Other software +pacman -S btop neovim nano grim slurp dust fastfetch feh wl-clipboard diff --git a/sway/config b/sway/config deleted file mode 100644 index cf691d9..0000000 --- a/sway/config +++ /dev/null @@ -1,23 +0,0 @@ -# Default config for sway -# -# Default conf in /etc/sway/config -# -# Read `man 5 sway` for a complete reference. - -# -# Preferred apps: -# -# Terminal emulator -set $term foot -# Application launcher -set $menu wofi --show run -# Browser -set $browser firefox - -# -# Status Bar: -# -exec waybar - -include /etc/sway/config.d/* -include config.d/* diff --git a/sway/config.d/idle.conf b/sway/config.d/idle.conf deleted file mode 100644 index 39aada2..0000000 --- a/sway/config.d/idle.conf +++ /dev/null @@ -1,7 +0,0 @@ -exec swayidle -w \ - timeout 300 'swaylock -f -c 000000' \ - timeout 600 'swaymsg "output * dpms off"' \ - resume 'swaymsg "output * dpms on"' \ - before-sleep 'swaylock -f -c 000000' \ - lock 'swaylock -f -c 000000' \ - lid 'swaylock -f -c 000000; systemctl suspend' diff --git a/sway/config.d/input.conf b/sway/config.d/input.conf deleted file mode 100644 index d3abcf6..0000000 --- a/sway/config.d/input.conf +++ /dev/null @@ -1,5 +0,0 @@ -input * { - xkb_layout de - tap enabled - natural_scroll enabled -} diff --git a/sway/config.d/keybinds.conf b/sway/config.d/keybinds.conf deleted file mode 100644 index 10b28cd..0000000 --- a/sway/config.d/keybinds.conf +++ /dev/null @@ -1,135 +0,0 @@ -### Variables -# -# Logo key. Use Mod1 for Alt. -set $mod Mod4 -# Home row direction keys, like vim -set $left h -set $down j -set $up k -set $right l - -# -------------------------------------------- - -# Start a terminal -bindsym $mod+Return exec $term - -# Kill focused window -bindsym $mod+q kill - -# Start your launcher -bindsym $mod+d exec $menu - -# Drag floating windows by holding down $mod and left mouse button. -# Resize them with right mouse button + $mod. -# Despite the name, also works for non-floating windows. -# Change normal to inverse to use left mouse button for resizing and right -# mouse button for dragging. -floating_modifier $mod normal - -# Reload the configuration file -bindsym $mod+Shift+c reload - -# Start apps -bindsym $mod+b exec $browser - -# Move your focus around -bindsym $mod+$left focus left -bindsym $mod+$down focus down -bindsym $mod+$up focus up -bindsym $mod+$right focus right -# Or use $mod+[up|down|left|right] -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right - -# Move the focused window with the same, but add Shift -bindsym $mod+Shift+$left move left -bindsym $mod+Shift+$down move down -bindsym $mod+Shift+$up move up -bindsym $mod+Shift+$right move right -# Ditto, with arrow keys -bindsym $mod+Shift+Left move left -bindsym $mod+Shift+Down move down -bindsym $mod+Shift+Up move up -bindsym $mod+Shift+Right move right - -# Switch to workspace -bindsym $mod+1 workspace number 1 -bindsym $mod+2 workspace number 2 -bindsym $mod+3 workspace number 3 -bindsym $mod+4 workspace number 4 -bindsym $mod+5 workspace number 5 -bindsym $mod+6 workspace number 6 -bindsym $mod+7 workspace number 7 -bindsym $mod+8 workspace number 8 -bindsym $mod+9 workspace number 9 -bindsym $mod+0 workspace number 10 - -# Move focused container to workspace -bindsym $mod+Shift+1 move container to workspace number 1 -bindsym $mod+Shift+2 move container to workspace number 2 -bindsym $mod+Shift+3 move container to workspace number 3 -bindsym $mod+Shift+4 move container to workspace number 4 -bindsym $mod+Shift+5 move container to workspace number 5 -bindsym $mod+Shift+6 move container to workspace number 6 -bindsym $mod+Shift+7 move container to workspace number 7 -bindsym $mod+Shift+8 move container to workspace number 8 -bindsym $mod+Shift+9 move container to workspace number 9 -bindsym $mod+Shift+0 move container to workspace number 10 - -# You can "split" the current object of your focus with -# $mod+b or $mod+v, for horizontal and vertical splits -# respectively. -bindsym $mod+v splith -bindsym $mod+c splitv - -# Switch the current container between different layout styles -bindsym $mod+s layout stacking -bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split - -# Make the current focus fullscreen -bindsym $mod+f fullscreen - -# Toggle the current focus between tiling and floating mode -bindsym $mod+Shift+space floating toggle - -# Swap focus between the tiling area and the floating area -bindsym $mod+space focus mode_toggle - -# Resize windows -mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - # Ditto, with arrow keys - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} -bindsym $mod+r mode "resize" - -# Special keys to adjust volume via PulseAudio -bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle -bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% -bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% -bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle - -# Special keys to adjust brightness via brightnessctl -bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- -bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ - -# Special key to take a screenshot with grim -bindsym Print exec grim diff --git a/sway/config.d/output.conf b/sway/config.d/output.conf deleted file mode 100644 index 95f921d..0000000 --- a/sway/config.d/output.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Get outputs with swaymsg -t get_outputs - -output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill - -# Laptop screen scaling -output eDP-1 scale 1.5