This commit is contained in:
Megnas 2025-12-15 17:21:35 +01:00
commit de795a6ce9
9 changed files with 725 additions and 0 deletions

10
alacritty/alacritty.toml Normal file
View File

@ -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" }

241
hypr/hyprland.conf Normal file
View File

@ -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

2
hypr/hyprpaper.conf Normal file
View File

@ -0,0 +1,2 @@
preload = /home/megnas/Backgrounds/novosedly1.jpg
wallpaper = , /home/megnas/Backgrounds/novosedly1.jpg

1
nvim Submodule

@ -0,0 +1 @@
Subproject commit 3338d3920620861f8313a2745fd5d2be39f39534

222
sway/config Normal file
View File

@ -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

8
sway/window_conf/copyq Normal file
View File

@ -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

132
waybar/config.jsonc Normal file
View File

@ -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": "<span style=\"italic\">{}</span>"
},
"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": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode" : "year",
"mode-mon-col" : 3,
"weeks-pos" : "right",
"on-scroll" : 1,
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"days": "<span color='#ecc6d9'><b>{}</b></span>",
"weeks": "<span color='#99ffdd'><b>W{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b><u>{}</u></b></span>"
}
},
"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": "<span size='12pt'>{icon}</span>",
"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"
}
}

73
waybar/style.css Normal file
View File

@ -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;
}

36
workstyle/config.toml Normal file
View File

@ -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 = ": "