commit de795a6ce98f50fd1c31a70024e5daa234de0638 Author: Megnas Date: Mon Dec 15 17:21:35 2025 +0100 init diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml new file mode 100644 index 0000000..2540893 --- /dev/null +++ b/alacritty/alacritty.toml @@ -0,0 +1,10 @@ +[window] +opacity = 0.85 + +[font] +#size = 14.0 # your preferred font size +#normal.family = "FiraCode Nerd Font" +#bold.family = "FiraCode Nerd Font" +#italic.family = "FiraCode Nerd Font" +#bold_italic.family = "FiraCode Nerd Font" +#normal = { family = "JetBrainsMono Nerd Font" } diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..0ee2bd5 --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,241 @@ +autogenerated = 0 + +# 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 ### +################ + +monitor=DP-2, 1920x1080@60, 0x0, 1 +monitor=DP-3, 1920x1080@60, 1920x0, 1 + +################### +### MY PROGRAMS ### +################### + +$terminal = alacritty +$fileManager = dolphin +$menu = pkill wofi || wofi --show drun -i -I --term=alacritty + + +################# +### AUTOSTART ### +################# + +exec-once = swaync & +exec-once = waybar & hyprpaper +exec-once = copyq --start-server +exec-once = discord --start-minimized +exec-once = steam -silent + +exec-once = hyprpm reload -n + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +################### +### PERMISSIONS ### +################### + +ecosystem { + enforce_permissions = 1 +} + +permission = /usr/(bin|local/bin)/grim, screencopy, allow +permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow +permission = /usr/(bin|local/bin)/hyprpm, plugin, allow + + +##################### +### LOOK AND FEEL ### +##################### + +general { + gaps_in = 2 + gaps_out = 2 + + border_size = 2 + + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + resize_on_border = false + + allow_tearing = false + + layout = dwindle +} + +decoration { + rounding = 0 + rounding_power = 2 + + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + blur { + enabled = true + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +animations { + enabled = no +} + +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 +} + +master { + new_status = master +} + +misc { + force_default_wallpaper = 0 + disable_hyprland_logo = true +} + +############# +### INPUT ### +############# + +input { + kb_layout = us, cz + kb_variant = + kb_model = + kb_options = grp:win_space_toggle + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } +} + +gesture = 3, horizontal, workspace + +################### +### KEYBINDINGS ### +################### + +$mainMod = ALT#SUPER # Sets "Windows" key as main modifier + +bind = $mainMod, RETURN, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, E, exit, +bind = $mainMod, N, exec, $fileManager +bind = $mainMod, G, togglefloating, +bind = $mainMod, P, exec, $menu +bind = $mainMod, H, exec, pkill wofi || ~/.scripts/hypr-help.sh +bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, K, pseudo, # dwindle +bind = $mainMod, F, fullscreen +bind = , Print, exec, ~/.scripts/screenshot.sh +bind = $mainMod, I, exec, pkill wofi || rofimoji +bind = $mainMod, O, exec, pkill wofi || ~/.scripts/copy_pasta.sh + +# 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 + +# 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 + +# 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 ### +############################## + +# 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 + +#Rules for specific windows +windowrulev2 = float,class:com.github.hluk.copyq,ontop:1 +windowrulev2 = float,class:org.pulseaudio.pavucontrol,ontop:1 + +#windowrule = center,class:dota2, maximize + + +#windowrule = center on, match:class dota2 + +######## WORKSPACE BIND ######## +# Workspaces 1-5 on DP-2 +workspace=1,monitor:DP-2 +workspace=2,monitor:DP-2 +workspace=3,monitor:DP-2 +workspace=4,monitor:DP-2 +workspace=5,monitor:DP-2 + +# Workspaces 6-10 on DP-3 +workspace=6,monitor:DP-3 +workspace=7,monitor:DP-3 +workspace=8,monitor:DP-3 +workspace=9,monitor:DP-3 +workspace=10,monitor:DP-3 + +# Runs portal +exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf new file mode 100644 index 0000000..e434d54 --- /dev/null +++ b/hypr/hyprpaper.conf @@ -0,0 +1,2 @@ +preload = /home/megnas/Backgrounds/novosedly1.jpg +wallpaper = , /home/megnas/Backgrounds/novosedly1.jpg diff --git a/nvim b/nvim new file mode 160000 index 0000000..3338d39 --- /dev/null +++ b/nvim @@ -0,0 +1 @@ +Subproject commit 3338d3920620861f8313a2745fd5d2be39f39534 diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..35c712f --- /dev/null +++ b/sway/config @@ -0,0 +1,222 @@ +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod1 +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l +# Your preferred terminal emulator +set $term alacritty +# Your preferred application launcher +set $menu wmenu-run + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +output * bg /home/megnas/Downloads/Backgrounds/kuroki_tomoko.jpeg fill + +output DP-2 resolution 1920x1080 position 0 0 +output DP-3 resolution 1920x1080 position 1920 0 + +# You can get the names of your outputs by running: swaymsg -t get_outputs + +### Idle configuration +# +# Example configuration: +# +# exec swayidle -w \ +# timeout 300 'swaylock -f -c 000000' \ +# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ +# before-sleep 'swaylock -f -c 000000' +# +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 300 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. + +### Input configuration +input type:keyboard { + xkb_layout "us,cz" + xkb_options grp:win_space_toggle +} + +# You can also configure each device individually. +# Read `man 5 sway-input` for more information about this section. + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+q kill + + # Start your launcher + bindsym $mod+p 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 + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +# +# Moving around: +# + # 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 +# +# Workspaces: +# + # 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 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v 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 + + # Move focus to the parent container + bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +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" +# +# Utilities: +# + # 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 slurp + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + swaybar_command waybar +} + +default_border pixel +default_floating_border pixel + +include /etc/sway/config.d/* +include ~/.config/sway/window_conf/* + +exec swaync +exec copyq --start-server + +for_window [class="com.github.hluk.copyq"] floating enable +for_window [class="com.github.hluk.copyq"] set "urgent" enable diff --git a/sway/window_conf/copyq b/sway/window_conf/copyq new file mode 100644 index 0000000..a6596ff --- /dev/null +++ b/sway/window_conf/copyq @@ -0,0 +1,8 @@ +for_window [class="com.github.hluk.copyq"] floating enable +for_window [class="com.github.hluk.copyq"] focus +for_window [class="com.github.hluk.copyq"] inhibit_idle off +for_window [class="com.github.hluk.copyq"] border normal +for_window [class="com.github.hluk.copyq"] fullscreen disable +for_window [class="com.github.hluk.copyq"] move position center +for_window [class="com.github.hluk.copyq"] set "sticky" enable + diff --git a/waybar/config.jsonc b/waybar/config.jsonc new file mode 100644 index 0000000..4981527 --- /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": 26, // 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": [ + "sway/workspaces", + "hyprland/workspaces", + "sway/mode", + "hyprland/submap" + //"sway/scratchpad", + //"custom/media" + ], + "modules-center": [ + "sway/window", + "hyprland/window" + ], + "modules-right": [ + "tray", + "pulseaudio", + "sway/language", + "hyprland/language", + "custom/notification", + "clock" + ], + "sway/mode": { + "format": "{}" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": ["", ""], + "tooltip": true, + "tooltip-format": "{app}: {title}" + }, + "sway/language": { + "format": "{}", + "on-click": "swaymsg input type:keyboard xkb_switch_layout next", + }, + "tray": { + "icon-size": 18, + "spacing":14, + }, + "clock": { + "timezone": "Europe/Prague", + "format": "{:%B %d | %H:%M}  ", + "tooltip-format": "{calendar}", + "calendar": { + "mode" : "year", + "mode-mon-col" : 3, + "weeks-pos" : "right", + "on-scroll" : 1, + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click-right": "mode", + "on-scroll-up": "tz_up", + "on-scroll-down": "tz_down", + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + } + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon}", + "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" + }, + "hyprland/window": { + "separate-outputs": true + }, + "custom/notification": { + "tooltip": true, + "format": "{icon}", + "format-icons": { + "notification": "󱅫", + "none": "󰂜", + "dnd-notification": "󰂠", + "dnd-none": "󰪓", + "inhibited-notification": "󰂛", + "inhibited-none": "󰪑", + "dnd-inhibited-notification": "󰂛", + "dnd-inhibited-none": "󰪑" + }, + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "escape": true + }, + "hyprland/workspaces": { + "workspace-taskbar": { + "enable": true, + "update-active-window": true + } + }, + "hyprland/language": { + "format": "{}", + "format-en": "US", + "format-cs": "CZ" + }, + "hyprland/workspaces": { + "format": "{icon}", + "format-window-separator": "\n", + "on-scroll-up": "hyprctl dispatch split-cycleworkspacesnowrap next", + "on-scroll-down": "hyprctl dispatch split-cycleworkspacesnowrap prev" + } +} diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..11e6985 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,73 @@ +/* Base font for Waybar, matching your Alacritty settings */ +* { + font-size: 14px; /* matches Alacritty font size */ + font-weight: normal; +} + +window#waybar { + background-color: rgba(75, 81, 92, 0.644); + border-bottom: 4px solid rgba(100, 114, 125, 0.5); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +#window, +#workspaces { + margin: 0 4px; +} + + +button { + box-shadow: inset 0 -3px transparent; + border: none; + border-radius: 0; +} + +button:hover { + background: inherit; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button { + padding: 0 5px; + background-color: transparent; + color: #ffffff; +} + +#workspaces button:hover { + background: rgba(0, 0, 0, 0.2); +} + +#workspaces button.focused { + background-color: #64727D; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button.active { + background-color: #64727D; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#clock, +#pulseaudio, +#language, +#custom-notification, +#tray { + padding: 0 4px; + /* color: #000000; */ +} + +/* 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; +} diff --git a/workstyle/config.toml b/workstyle/config.toml new file mode 100644 index 0000000..0424b5e --- /dev/null +++ b/workstyle/config.toml @@ -0,0 +1,36 @@ +# Config for workstyle +# +# Format: +# "pattern" = "icon" +# +# The pattern will be used to match against the application name, class_id or WM_CLASS. +# The icon will be used to represent that application. +# +# Note if multiple patterns are present in the same application name, +# precedence is given in order of apparition in this file. + + + +"firefox" = "" +"github" = "" +"google" = "" +"private browsing" = "" + +"nvim" = "" +"alacritty" = "" + +"dolphin" = "" +"mpv" = "" +"discord" = "" +"steam" = "" +"code" = "" +"kate" = "" +"lutris" = "" +"tor" = "" +"transmission" = "󰺒" +"dota2" = "" + +[other] +fallback_icon = "" +deduplicate_icons = true +separator = ": "