Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
648de6c18a | ||
|
|
8253f168e6 | ||
|
|
4c7b7b7e54 | ||
|
|
2e8ede7127 | ||
|
|
f00d6747d8 | ||
|
|
d2eedc36cb | ||
|
|
768ccbe680 | ||
|
|
7f5c6731aa | ||
|
|
fc1a17b447 | ||
|
|
bf1e1ef532 | ||
|
|
aa4449866a | ||
|
|
d428c53740 | ||
|
|
3de410da80 |
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"positionX": 726,
|
||||
"positionY": 321,
|
||||
"scaling": 1,
|
||||
"zIndex": 0
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"positionX": 1231,
|
||||
"positionY": 721,
|
||||
"scaling": 2.200000000000001,
|
||||
"zIndex": 0
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"positionX": 925,
|
||||
"positionY": 4,
|
||||
"scaling": 11.399999999999977,
|
||||
"zIndex": 0
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"positionX": 98,
|
||||
"positionY": 1346,
|
||||
"scaling": 2.2375000000000145,
|
||||
"zIndex": 2
|
||||
"positionX": 153,
|
||||
"positionY": 1032,
|
||||
"scaling": 1.749999999999999,
|
||||
"zIndex": 1
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"positionX": 0,
|
||||
"positionY": 1292,
|
||||
"scaling": 3.7125000000000177,
|
||||
"zIndex": 1
|
||||
"positionX": 4,
|
||||
"positionY": 968,
|
||||
"scaling": 2.975000000000006,
|
||||
"zIndex": 2
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"positionX": 125,
|
||||
"positionY": 1292,
|
||||
"scaling": 4.05000000000002,
|
||||
"positionX": 197,
|
||||
"positionY": 956,
|
||||
"scaling": 3.050000000000006,
|
||||
"zIndex": 0
|
||||
}
|
||||
|
||||
@@ -0,0 +1,409 @@
|
||||
### MangoHud configuration file
|
||||
### Uncomment any options you wish to enable. Default options are left uncommented
|
||||
### Use some_parameter=0 to disable a parameter (only works with on/off parameters)
|
||||
### Everything below can be used / overridden with the environment variable MANGOHUD_CONFIG instead
|
||||
|
||||
################ INFORMATIONAL #################
|
||||
## prints possible options on stdout
|
||||
# help
|
||||
|
||||
################ PERFORMANCE #################
|
||||
|
||||
### Limit the application FPS. Comma-separated list of one or more FPS values (e.g. 0,30,60). 0 means unlimited (unless VSynced)
|
||||
# fps_limit=144,60,0
|
||||
|
||||
### early = wait before present, late = wait after present
|
||||
# fps_limit_method=
|
||||
|
||||
### VSync [0-3] 0 = adaptive; 1 = off; 2 = mailbox; 3 = on
|
||||
vsync=2
|
||||
|
||||
### OpenGL VSync [0-N] 0 = off; >=1 = wait for N v-blanks, N > 1 acts as a FPS limiter (FPS = display refresh rate / N)
|
||||
# gl_vsync=-2
|
||||
|
||||
### Mip-map LoD bias. Negative values will increase texture sharpness (and aliasing)
|
||||
## Positive values will increase texture blurriness (-16 to 16)
|
||||
# picmip=-17
|
||||
|
||||
### Anisotropic filtering level. Improves sharpness of textures viewed at an angle (0 to 16)
|
||||
# af=-1
|
||||
|
||||
### Force bicubic filtering
|
||||
# bicubic
|
||||
|
||||
### Force trilinear filtering
|
||||
# trilinear
|
||||
|
||||
### Disable linear texture filtering. Makes textures look blocky
|
||||
# retro
|
||||
|
||||
################### VISUAL ###################
|
||||
|
||||
### Legacy layout
|
||||
# legacy_layout=0
|
||||
|
||||
### pre defined presets
|
||||
# -1 = default
|
||||
# 0 = no display
|
||||
# 1 = fps only
|
||||
# 2 = horizontal view
|
||||
# 3 = extended
|
||||
# 4 = high detailed information
|
||||
# preset=-1
|
||||
|
||||
### Enable most of the toggleable parameters (currently excludes `histogram`)
|
||||
# full
|
||||
|
||||
### Show FPS only. ***Not meant to be used with other display params***
|
||||
# fps_only
|
||||
|
||||
### Display custom centered text, useful for a header
|
||||
# custom_text_center=
|
||||
|
||||
### Display the current system time
|
||||
# time
|
||||
## removes the time label
|
||||
# time_no_label
|
||||
|
||||
### Time formatting examples
|
||||
## %H:%M
|
||||
## [ %T %F ]
|
||||
## %X # locally formatted time, because of limited glyph range, missing characters may show as '?' (e.g. Japanese)
|
||||
# time_format="%T"
|
||||
|
||||
### Display MangoHud version
|
||||
# version
|
||||
|
||||
### Display the current GPU information
|
||||
## Note: gpu_mem_clock and gpu_mem_temp also need "vram" to be enabled
|
||||
gpu_stats
|
||||
# gpu_temp
|
||||
# gpu_junction_temp
|
||||
# gpu_core_clock
|
||||
# gpu_mem_temp
|
||||
# gpu_mem_clock
|
||||
# gpu_power
|
||||
# gpu_power_limit
|
||||
# gpu_text=
|
||||
# gpu_load_change
|
||||
# gpu_load_value=60,90
|
||||
# gpu_load_color=39F900,FDFD09,B22222
|
||||
## GPU fan in rpm on AMD, FAN in percent on NVIDIA
|
||||
# gpu_fan
|
||||
## gpu_voltage only works on AMD GPUs
|
||||
# gpu_voltage
|
||||
## Select list of GPUs to display
|
||||
# gpu_list=0,1
|
||||
# gpu_efficiency
|
||||
|
||||
### Display the current CPU information
|
||||
cpu_stats
|
||||
# cpu_temp
|
||||
# cpu_power
|
||||
# cpu_text=
|
||||
# cpu_mhz
|
||||
# cpu_load_change
|
||||
# cpu_load_value=60,90
|
||||
# cpu_load_color=39F900,FDFD09,B22222
|
||||
# cpu_efficiency
|
||||
|
||||
### Display the current CPU load & frequency for each core
|
||||
# core_load
|
||||
# core_load_change
|
||||
# core_bars
|
||||
# core_type
|
||||
|
||||
### Display IO read and write for the app (not system)
|
||||
# io_read
|
||||
# io_write
|
||||
|
||||
### Display system vram / ram / swap space usage
|
||||
# vram
|
||||
# ram
|
||||
# swap
|
||||
|
||||
### Display per process memory usage
|
||||
## Show resident memory and other types, if enabled
|
||||
procmem
|
||||
# procmem_shared
|
||||
# procmem_virt
|
||||
proc_vram
|
||||
|
||||
### Display battery information
|
||||
# battery
|
||||
# battery_icon
|
||||
# device_battery=gamepad,mouse
|
||||
# device_battery_icon
|
||||
# battery_watt
|
||||
# battery_time
|
||||
|
||||
### Display FPS and frametime
|
||||
fps
|
||||
# fps_sampling_period=500
|
||||
# fps_color_change
|
||||
# fps_value=30,60
|
||||
# fps_color=B22222,FDFD09,39F900
|
||||
# fps_text=""
|
||||
frametime
|
||||
# frame_count
|
||||
## fps_metrics takes a list of decimal values or the value avg
|
||||
# fps_metrics=avg,0.01
|
||||
|
||||
### Display GPU throttling status based on Power, current, temp or "other"
|
||||
## Only shows if throttling is currently happening
|
||||
throttling_status
|
||||
## Same as throttling_status but displays throttling on the frametime graph
|
||||
#throttling_status_graph
|
||||
|
||||
### Display miscellaneous information
|
||||
# engine_version
|
||||
# engine_short_names
|
||||
# gpu_name
|
||||
# vulkan_driver
|
||||
# wine
|
||||
# exec_name
|
||||
# winesync
|
||||
# present_mode
|
||||
|
||||
### Display loaded MangoHud architecture
|
||||
# arch
|
||||
|
||||
### Display the frametime line graph
|
||||
frame_timing
|
||||
# frame_timing_detailed
|
||||
# dynamic_frame_timing
|
||||
# histogram
|
||||
|
||||
### Display GameMode / vkBasalt running status
|
||||
# gamemode
|
||||
# vkbasalt
|
||||
|
||||
### Gamescope related options
|
||||
## Display the status of FSR (only works in gamescope)
|
||||
# fsr
|
||||
## Hides the sharpness info for the `fsr` option (only available in gamescope)
|
||||
# hide_fsr_sharpness
|
||||
## Shows the graph of gamescope app frametimes and latency (only on gamescope obviously)
|
||||
# debug
|
||||
## Display the status of HDR (only works in gamescope)
|
||||
# hdr
|
||||
## Display the current refresh rate (only works in gamescope)
|
||||
# refresh_rate
|
||||
|
||||
|
||||
### graphs displays one or more graphs that you chose
|
||||
## separated by ",", available graphs are
|
||||
## gpu_load,cpu_load,gpu_core_clock,gpu_mem_clock,vram,ram,cpu_temp,gpu_temp
|
||||
# graphs=
|
||||
|
||||
### mangoapp related options
|
||||
## Enables mangoapp to be displayed above the Steam UI
|
||||
# mangoapp_steam
|
||||
|
||||
### Steam Deck options
|
||||
## Shows the Steam Deck fan rpm
|
||||
# fan
|
||||
|
||||
### Display current FPS limit
|
||||
show_fps_limit
|
||||
|
||||
### Display the current resolution
|
||||
# resolution
|
||||
|
||||
### Display current display session
|
||||
# display_server
|
||||
|
||||
### Display temperature in fahrenheit
|
||||
# temp_fahrenheit
|
||||
|
||||
## Display efficiency in joules per frame
|
||||
# flip_efficiency
|
||||
|
||||
### Display custom text
|
||||
# custom_text=
|
||||
### Display output of Bash command in next column
|
||||
# exec=
|
||||
|
||||
### Display media player metadata
|
||||
# media_player
|
||||
## for example spotify
|
||||
# media_player_name=
|
||||
## Format metadata, lines are delimited by ; (wip)
|
||||
## example: {title};{artist};{album}
|
||||
## example: Track:;{title};By:;{artist};From:;{album}
|
||||
# media_player_format=title,artist,album
|
||||
|
||||
### Network interface throughput
|
||||
# network
|
||||
## Network can take arguments but it's not required.
|
||||
## without arguments it shows all interfaces
|
||||
## arguments set which interfaces will be displayed
|
||||
# network=eth0,wlo1
|
||||
|
||||
|
||||
### Change the hud font size
|
||||
# font_size=24
|
||||
# font_scale=1.0
|
||||
# font_size_text=24
|
||||
# font_scale_media_player=0.55
|
||||
# no_small_font
|
||||
|
||||
### Change default font (set location to TTF/OTF file)
|
||||
## Set font for the whole hud
|
||||
# font_file=
|
||||
|
||||
## Set font only for text like media player metadata
|
||||
# font_file_text=
|
||||
|
||||
## Set font glyph ranges. Defaults to Latin-only. Don't forget to set font_file/font_file_text to font that supports these
|
||||
## Probably don't enable all at once because of memory usage and hardware limits concerns
|
||||
## If you experience crashes or text is just squares, reduce glyph range or reduce font size
|
||||
# font_glyph_ranges=korean,chinese,chinese_simplified,japanese,cyrillic,thai,vietnamese,latin_ext_a,latin_ext_b
|
||||
|
||||
### Outline text
|
||||
text_outline
|
||||
# text_outline_color = 000000
|
||||
# text_outline_thickness = 1.5
|
||||
|
||||
### Change the hud position
|
||||
# position=top-left
|
||||
|
||||
### Change the corner roundness
|
||||
# round_corners=0
|
||||
|
||||
### Remove margins around MangoHud
|
||||
# hud_no_margin
|
||||
|
||||
### Display compact version of MangoHud
|
||||
# hud_compact
|
||||
|
||||
### Display MangoHud in a horizontal position
|
||||
# horizontal
|
||||
# horizontal_stretch
|
||||
|
||||
### Disable / hide the hud by default
|
||||
# no_display
|
||||
|
||||
### Show FEX-Emu statistics
|
||||
## Only useful for Arm64 devices running applications under emulation
|
||||
# fex_stats
|
||||
|
||||
### Hud position offset
|
||||
# offset_x=0
|
||||
# offset_y=0
|
||||
|
||||
### Hud dimensions
|
||||
# width=0
|
||||
# height=140
|
||||
# table_columns=3
|
||||
# cellpadding_y=-0.085
|
||||
|
||||
### Hud transparency / alpha
|
||||
# background_alpha=0.5
|
||||
# alpha=1.0
|
||||
|
||||
### FCAT overlay
|
||||
### This enables an FCAT overlay to perform frametime analysis on the final image stream.
|
||||
### Enable the overlay
|
||||
# fcat
|
||||
### Set the width of the FCAT overlay.
|
||||
### 24 is a performance optimization on AMD GPUs that should not have adverse effects on nVidia GPUs.
|
||||
### A minimum of 20 pixels is recommended by nVidia.
|
||||
# fcat_overlay_width=24
|
||||
### Set the screen edge, this can be useful for special displays that don't update from top edge to bottom. This goes from 0 (left side) to 3 (top edge), counter-clockwise.
|
||||
# fcat_screen_edge=0
|
||||
|
||||
### Color customization
|
||||
# text_color=FFFFFF
|
||||
# gpu_color=2E9762
|
||||
# cpu_color=2E97CB
|
||||
# vram_color=AD64C1
|
||||
# ram_color=C26693
|
||||
# engine_color=EB5B5B
|
||||
# io_color=A491D3
|
||||
# frametime_color=00FF00
|
||||
# background_color=020202
|
||||
# media_player_color=FFFFFF
|
||||
# wine_color=EB5B5B
|
||||
# battery_color=FF9078
|
||||
# network_color=E07B85
|
||||
# horizontal_separator_color=AD64C1
|
||||
|
||||
### Specify GPU with PCI bus ID
|
||||
### Set to 'domain:bus:slot.function'
|
||||
### Example:
|
||||
### $ lspci | grep A770
|
||||
### 03:00.0 VGA compatible controller: Intel Corporation DG2 [Arc A770] (rev 08)
|
||||
# pci_dev=0000:03:00.0
|
||||
|
||||
### Blacklist
|
||||
# blacklist=
|
||||
|
||||
### Control over socket
|
||||
### Enable and set socket name, '%p' is replaced with process id
|
||||
## example: mangohud
|
||||
## example: mangohud-%p
|
||||
# control = -1
|
||||
|
||||
### ftrace tracepoint display
|
||||
## Enable display of tracepoint information gathered from ftrace. MangoHud will parse
|
||||
## out the necessary data from the ftrace pipe, ftrace itself still has to be configured
|
||||
## manually (enabling the desired event, applying any filtering etc.). The user running
|
||||
## MangoHud will require permission to access the default-mounted tracefs (expected at
|
||||
## /sys/kernel/tracing/).
|
||||
##
|
||||
## When parsing ftrace output, currently only the `key=value` format for event fields is
|
||||
## expected. This is the most common format used in events, but it's not standardized.
|
||||
##
|
||||
## Three types of display are available:
|
||||
## - `histogram/drm_vblank_event`, a histogram of event occurrence
|
||||
## - `linegraph/devfreq_monitor/freq`, a line graph of an event field's numerical value
|
||||
## - `label/devfreq_frequency/dev_name`, a textual presentation of an event field's value
|
||||
##
|
||||
## The displays are set through the `ftrace` option. Multiple displays can be specified.
|
||||
# ftrace=histogram/drm_vblank_event+linegraph/devfreq_monitor/freq
|
||||
|
||||
################ WORKAROUNDS #################
|
||||
### Options starting with "gl_*" are for OpenGL
|
||||
### Specify what to use for getting display size. Options are "viewport", "scissorbox" or disabled. Defaults to using glXQueryDrawable
|
||||
# gl_size_query=viewport
|
||||
|
||||
### (Re)bind given framebuffer before MangoHud gets drawn. Helps with Crusader Kings III
|
||||
# gl_bind_framebuffer=0
|
||||
|
||||
### Don't swap origin if using GL_UPPER_LEFT. Helps with Ryujinx
|
||||
# gl_dont_flip=1
|
||||
|
||||
################ INTERACTION #################
|
||||
|
||||
### Change toggle keybinds for the hud & logging
|
||||
toggle_hud=Shift_R+F12
|
||||
# toggle_hud_position=Shift_R+F11
|
||||
# toggle_preset=Shift_R+F10
|
||||
# toggle_fps_limit=Shift_L+F1
|
||||
# toggle_logging=Shift_L+F2
|
||||
# reload_cfg=Shift_L+F4
|
||||
# upload_log=Shift_L+F3
|
||||
# reset_fps_metrics=Shift_R+f9
|
||||
|
||||
#################### LOG #####################
|
||||
### Automatically start the log after X seconds
|
||||
# autostart_log=
|
||||
### Set amount of time in seconds that the logging will run for
|
||||
# log_duration=
|
||||
### Change the default log interval, 0 is default
|
||||
# log_interval=0
|
||||
### Set location of the output files (required for logging)
|
||||
# output_folder=/home/<USERNAME>/mangologs
|
||||
### Permit uploading logs directly to FlightlessMango.com
|
||||
## set to 1 to enable
|
||||
# permit_upload=0
|
||||
### Define a '+'-separated list of percentiles shown in the benchmark results
|
||||
### Use "AVG" to get a mean average. Default percentiles are 97+AVG+1+0.1
|
||||
## example: ['97', 'AVG', '1', '0.1']
|
||||
# benchmark_percentiles=97,AVG
|
||||
## Adds more headers and information such as versioning to the log. This format is not supported on flightlessmango.com (yet)
|
||||
# log_versioning
|
||||
## Enable automatic uploads of logs to flightlessmango.com
|
||||
# upload_logs
|
||||
# output_file=""
|
||||
@@ -8,78 +8,20 @@
|
||||
"Settings": [],
|
||||
"Enable": true
|
||||
},
|
||||
"Filters": [
|
||||
{
|
||||
"Path": "RadialFollow.RadialFollowSmoothingScreenSpace",
|
||||
"Settings": [
|
||||
{
|
||||
"Property": "OuterRadius",
|
||||
"Value": 5.0
|
||||
},
|
||||
{
|
||||
"Property": "InnerRadius",
|
||||
"Value": 0.0
|
||||
},
|
||||
{
|
||||
"Property": "SmoothingCoefficient",
|
||||
"Value": 0.95
|
||||
},
|
||||
{
|
||||
"Property": "SoftKneeScale",
|
||||
"Value": 1.0
|
||||
},
|
||||
{
|
||||
"Property": "SmoothingLeakCoefficient",
|
||||
"Value": 0.0
|
||||
}
|
||||
],
|
||||
"Enable": true
|
||||
},
|
||||
{
|
||||
"Path": "RadialFollow.RadialFollowSmoothingTabletSpace",
|
||||
"Settings": [
|
||||
{
|
||||
"Property": "OuterRadius",
|
||||
"Value": 1.0
|
||||
},
|
||||
{
|
||||
"Property": "InnerRadius",
|
||||
"Value": 0.0
|
||||
},
|
||||
{
|
||||
"Property": "SmoothingCoefficient",
|
||||
"Value": 0.95
|
||||
},
|
||||
{
|
||||
"Property": "SoftKneeScale",
|
||||
"Value": 1.0
|
||||
},
|
||||
{
|
||||
"Property": "SmoothingLeakCoefficient",
|
||||
"Value": 0.0
|
||||
}
|
||||
],
|
||||
"Enable": true
|
||||
},
|
||||
{
|
||||
"Path": "erase_button.erase_button",
|
||||
"Settings": [],
|
||||
"Enable": true
|
||||
}
|
||||
],
|
||||
"Filters": [],
|
||||
"AbsoluteModeSettings": {
|
||||
"Display": {
|
||||
"Width": 1920.0,
|
||||
"Height": 1080.0,
|
||||
"X": 960.0,
|
||||
"Y": 540.0,
|
||||
"Width": 2560.0,
|
||||
"Height": 1440.0,
|
||||
"X": 1280.0,
|
||||
"Y": 720.0,
|
||||
"Rotation": 0.0
|
||||
},
|
||||
"Tablet": {
|
||||
"Width": 152.0,
|
||||
"Height": 95.0,
|
||||
"X": 76.0,
|
||||
"Y": 47.5,
|
||||
"Width": 39.0,
|
||||
"Height": 30.0,
|
||||
"X": 75.0,
|
||||
"Y": 24.0,
|
||||
"Rotation": 0.0
|
||||
},
|
||||
"EnableClipping": true,
|
||||
@@ -99,26 +41,23 @@
|
||||
"EraserButton": null,
|
||||
"PenButtons": [
|
||||
{
|
||||
"Path": "ScrollBinding.NewBulletproofScrollBinding",
|
||||
"Path": "OpenTabletDriver.Desktop.Binding.LinuxArtistMode.LinuxArtistModeButtonBinding",
|
||||
"Settings": [
|
||||
{
|
||||
"Property": "Property",
|
||||
"Value": null
|
||||
},
|
||||
{
|
||||
"Property": "Delay",
|
||||
"Value": 15
|
||||
},
|
||||
{
|
||||
"Property": "Amount",
|
||||
"Value": 120
|
||||
"Property": "Button",
|
||||
"Value": "Pen Button 1"
|
||||
}
|
||||
],
|
||||
"Enable": true
|
||||
},
|
||||
{
|
||||
"Path": "erase_button.erase_button",
|
||||
"Settings": [],
|
||||
"Path": "OpenTabletDriver.Desktop.Binding.LinuxArtistMode.LinuxArtistModeButtonBinding",
|
||||
"Settings": [
|
||||
{
|
||||
"Property": "Button",
|
||||
"Value": "Pen Button 2"
|
||||
}
|
||||
],
|
||||
"Enable": true
|
||||
}
|
||||
],
|
||||
@@ -126,39 +65,14 @@
|
||||
"MouseButtons": [],
|
||||
"MouseScrollUp": null,
|
||||
"MouseScrollDown": null,
|
||||
"WheelBindings": [],
|
||||
"DisablePressure": false,
|
||||
"DisableTilt": false
|
||||
"DisableTilt": false,
|
||||
"EnableDragBindings": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"LockUsableAreaDisplay": true,
|
||||
"LockUsableAreaTablet": true,
|
||||
"Tools": [
|
||||
{
|
||||
"Path": "ScrollBinding.ScrollBindingSettings",
|
||||
"Settings": [
|
||||
{
|
||||
"Property": "ScrollDelay",
|
||||
"Value": 15
|
||||
},
|
||||
{
|
||||
"Property": "ForwardScroll",
|
||||
"Value": 120
|
||||
},
|
||||
{
|
||||
"Property": "BackwardScroll",
|
||||
"Value": 120
|
||||
},
|
||||
{
|
||||
"Property": "LeftScroll",
|
||||
"Value": 120
|
||||
},
|
||||
{
|
||||
"Property": "RightScroll",
|
||||
"Value": 120
|
||||
}
|
||||
],
|
||||
"Enable": true
|
||||
}
|
||||
]
|
||||
"Tools": []
|
||||
}
|
||||
@@ -1,112 +1,112 @@
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"source": "/home/inorishio/Pictures/Gifs/Ai-Hoshino-Dancing.gif",
|
||||
"type": "kitty-icat",
|
||||
"padding": {
|
||||
"top": 5,
|
||||
"right": 2,
|
||||
}
|
||||
"source": "/home/inorishio/Pictures/Profile-Pictures/Nescia.png",
|
||||
"type": "kitty-icat",
|
||||
"padding": {
|
||||
"top": 5,
|
||||
"right": 2,
|
||||
},
|
||||
},
|
||||
"display": {
|
||||
"separator": " ➜ "
|
||||
"separator": " ➜ ",
|
||||
},
|
||||
"modules": [
|
||||
"break",
|
||||
"break",
|
||||
"break",
|
||||
{
|
||||
"type": "os",
|
||||
"key": "OS ",
|
||||
"keyColor": "31", // = color1
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": " ├ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"format": "{} (pacman)",
|
||||
"key": " ├ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": " └ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "wm",
|
||||
"key": "WM ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "wmtheme",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "icons",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "cursor",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "terminalfont",
|
||||
"key": " └ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "host",
|
||||
"format": "{5} {1} Type {2}",
|
||||
"key": "PC ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "cpu",
|
||||
"format": "{1} ({3}) @ {7} GHz",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"format": "{1} {2} @ {12} GHz",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "swap",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "monitor",
|
||||
"key": " └ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
"break",
|
||||
"break",
|
||||
]
|
||||
"break",
|
||||
"break",
|
||||
"break",
|
||||
{
|
||||
"type": "os",
|
||||
"key": "OS ",
|
||||
"keyColor": "31", // = color1
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": " ├ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"format": "{pacman} (pacman), {yay} (yay)",
|
||||
"key": " ├ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": " └ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "wm",
|
||||
"key": "WM ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "wmtheme",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "icons",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "cursor",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "terminalfont",
|
||||
"key": " └ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "host",
|
||||
"format": "{5} {1} Type {2}",
|
||||
"key": "PC ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "cpu",
|
||||
"format": "{1} ({3}) @ {7} GHz",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"format": "{1} {2} @ {12} GHz",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "swap",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "monitor",
|
||||
"key": " └ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
"break",
|
||||
"break",
|
||||
],
|
||||
}
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"type": "kitty-icat",
|
||||
"source": "/home/inorishio/Pictures/Profile-Pictures/Nescia.png",
|
||||
// "height": 60,
|
||||
"width": 60,
|
||||
"padding": {
|
||||
"top": 3,
|
||||
"right": 0,
|
||||
},
|
||||
},
|
||||
"display": {
|
||||
"separator": " ➜ ",
|
||||
},
|
||||
"modules": [
|
||||
"break",
|
||||
"break",
|
||||
"break",
|
||||
{
|
||||
"type": "os",
|
||||
"key": "OS ",
|
||||
"keyColor": "32", // = color1
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"format": "{pacman} (pacman)",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": " └ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "wm",
|
||||
"key": "WM ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "wmtheme",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "icons",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "cursor",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "terminalfont",
|
||||
"key": " └ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "host",
|
||||
"format": "{5} {1} Type {2}",
|
||||
"key": "PC ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "cpu",
|
||||
"format": "{1} ({3}) @ {7} GHz",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"format": "{1} {2} @ {12} GHz",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "swap",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "monitor",
|
||||
"key": " └ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
"break",
|
||||
"break",
|
||||
],
|
||||
}
|
||||
@@ -1,24 +1,351 @@
|
||||
# Run on boot
|
||||
exec-once = uwsm app -S out -- zshell-cli shell start
|
||||
exec-once = uwsm app -S out -- obs --scene "Recording" --startreplaybuffer --minimize-to-tray
|
||||
exec-once = uwsm app -S out -- /usr/bin/otd-daemon
|
||||
exec-once = uwsm app -S out -- ideskpet start
|
||||
exec-once = uwsm app -S out -- hyprpm reload
|
||||
exec-once = uwsm app -S out -- Telegram -startintray
|
||||
exec-once = uwsm app -S out -- discord --start-minimized
|
||||
exec-once = uwsm app -S out -- steam -silent
|
||||
|
||||
# Sourcing config files
|
||||
source = ~/.config/hypr/conf/animations/InoriShio-animation.conf
|
||||
source = ~/.config/hypr/conf/custom.conf
|
||||
source = ~/.config/hypr/conf/decorations/InoriShio-decoration.conf
|
||||
source = ~/.config/hypr/conf/environments/nvidia.conf
|
||||
source = ~/.config/hypr/conf/keybindings/InoriShio-Keybindings.conf
|
||||
source = ~/.config/hypr/conf/layers.conf
|
||||
source = ~/.config/hypr/conf/layouts/computer.conf
|
||||
source = ~/.config/hypr/conf/layouts/keyboard.conf
|
||||
source = ~/.config/hypr/conf/misc.conf
|
||||
source = ~/.config/hypr/conf/monitors/InoriShio-Display.conf
|
||||
source = ~/.config/hypr/conf/windowrules/default.conf
|
||||
source = ~/.config/hypr/conf/windows/default.conf
|
||||
source = ~/.config/hypr/conf/scripts.conf
|
||||
# #######################################################################################
|
||||
# AUTOGENERATED HYPRLAND CONFIG.
|
||||
# EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
# #######################################################################################
|
||||
|
||||
autogenerated = 1 # remove this line to remove the warning
|
||||
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hypr.land/Configuring/
|
||||
|
||||
# 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.hypr.land/Configuring/Monitors/
|
||||
monitor=,preferred,auto,auto
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = dolphin
|
||||
$menu = hyprlauncher
|
||||
|
||||
|
||||
#################
|
||||
### 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
|
||||
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Permissions/
|
||||
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||
# for security reasons
|
||||
|
||||
# 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 ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hypr.land/Configuring/Variables/
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hypr.land/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.hypr.land/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
|
||||
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
|
||||
# NAME, X0, Y0, X1, Y1
|
||||
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
|
||||
bezier = quick, 0.15, 0, 0.1, 1
|
||||
|
||||
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
|
||||
# NAME, ONOFF, SPEED, CURVE, [STYLE]
|
||||
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
|
||||
animation = zoomFactor, 1, 7, quick
|
||||
}
|
||||
|
||||
# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrule {
|
||||
# name = no-gaps-wtv1
|
||||
# match:float = false
|
||||
# match:workspace = w[tv1]
|
||||
#
|
||||
# border_size = 0
|
||||
# rounding = 0
|
||||
# }
|
||||
#
|
||||
# windowrule {
|
||||
# name = no-gaps-f1
|
||||
# match:float = false
|
||||
# match:workspace = f[1]
|
||||
#
|
||||
# border_size = 0
|
||||
# rounding = 0
|
||||
# }
|
||||
|
||||
# See https://wiki.hypr.land/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.hypr.land/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/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. :(
|
||||
mouse_move_enables_dpms = true
|
||||
key_press_enables_dpms = true
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Gestures
|
||||
gesture = 3, horizontal, workspace
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, layoutmsg, 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
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -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 -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrules that are useful
|
||||
|
||||
windowrule {
|
||||
# Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = suppress-maximize-events
|
||||
match:class = .*
|
||||
|
||||
suppress_event = maximize
|
||||
}
|
||||
|
||||
windowrule {
|
||||
# Fix some dragging issues with XWayland
|
||||
name = fix-xwayland-drags
|
||||
match:class = ^$
|
||||
match:title = ^$
|
||||
match:xwayland = true
|
||||
match:float = true
|
||||
match:fullscreen = false
|
||||
match:pin = false
|
||||
|
||||
no_focus = true
|
||||
}
|
||||
|
||||
# Hyprland-run windowrule
|
||||
windowrule {
|
||||
name = move-hyprland-run
|
||||
|
||||
match:class = hyprland-run
|
||||
|
||||
move = 20 monitor_h-120
|
||||
float = yes
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
require("settings.autostart")
|
||||
require("settings.keybinds")
|
||||
require("settings.custom")
|
||||
require("settings.windowrules")
|
||||
require("settings.layerrules")
|
||||
require("settings.animation")
|
||||
require("settings.autostart")
|
||||
require("settings.config")
|
||||
require("settings.custom")
|
||||
require("settings.input")
|
||||
require("settings.permissions")
|
||||
require("settings.keybinds")
|
||||
require("settings.monitor")
|
||||
require("settings.misc")
|
||||
require("settings.windowrules")
|
||||
require("settings.permissions")
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env zsh
|
||||
systemctl stop bluetooth
|
||||
modprobe -r btusb btintel btrtl btbcm btmtk
|
||||
modprobe btusb
|
||||
systemctl start bluetooth
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
zoom=$(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.3')
|
||||
|
||||
hyprctl eval "hl.config({ cursor = { zoom_factor = $zoom } })"
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
zoom=$(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.7) | if . < 1 then 1 else . end')
|
||||
|
||||
hyprctl eval "hl.config({ cursor = { zoom_factor = $zoom } })"
|
||||
@@ -1,114 +1,36 @@
|
||||
local C = require("color")
|
||||
|
||||
local animations = {
|
||||
{ leaf = "global", enabled = true, speed = 10, bezier = "default" },
|
||||
{ leaf = "border", enabled = true, speed = 10, bezier = "default" },
|
||||
{ leaf = "windows", enabled = true, speed = 3, bezier = "default" },
|
||||
{ leaf = "windowsIn", enabled = true, speed = 3, bezier = "default" },
|
||||
{ leaf = "windowsOut", enabled = true, speed = 3, bezier = "default" },
|
||||
{ leaf = "windowsMove", enabled = true, speed = 1, bezier = "default" },
|
||||
{ leaf = "border", enabled = true, speed = 10, bezier = "linear" },
|
||||
{ leaf = "borderangle", enabled = true, speed = 3, bezier = "linear" },
|
||||
{ leaf = "fadeOut", enabled = true, speed = 3, bezier = "default" },
|
||||
{ leaf = "fadeIn", enabled = true, speed = 4, bezier = "default" },
|
||||
{ leaf = "workspaces", enabled = true, speed = 4, bezier = "default" },
|
||||
{ leaf = "layers", enabled = true, speed = 5, bezier = "default" },
|
||||
{ leaf = "fadeLayers", enabled = true, speed = 1, bezier = "default" },
|
||||
{ leaf = "fadePopups", enabled = true, speed = 1, bezier = "default" },
|
||||
{ leaf = "global", enabled = true, speed = 10, bezier = "default" },
|
||||
{ leaf = "layers", enabled = true, speed = 5, bezier = "cubic-bezier", style = "fade" },
|
||||
{ leaf = "windows", enabled = true, speed = 3, bezier = "wind", style = "popin" },
|
||||
{ leaf = "windowsIn", enabled = true, speed = 3, bezier = "winIn", style = "popin 70%" },
|
||||
{ leaf = "windowsOut", enabled = true, speed = 3, bezier = "winOut", style = "popin 80%" },
|
||||
{ leaf = "windowsMove", enabled = true, speed = 1, bezier = "wind", style = "slide" },
|
||||
{ leaf = "workspaces", enabled = true, speed = 4, bezier = "default" },
|
||||
}
|
||||
|
||||
local curves = {
|
||||
{ name = "wind", config = { type = "bezier", points = { { 0.25, 0.1 }, { 0.25, 1 } } } },
|
||||
{ name = "wind", config = { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1 } } } },
|
||||
{ name = "winIn", config = { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1 } } } },
|
||||
{ name = "winOut", config = { type = "bezier", points = { { 1, 0.35 }, { 1, 1 } } } },
|
||||
{ name = "linear", config = { type = "bezier", points = { { 1, 1 }, { 1, 1 } } } },
|
||||
{ name = "cubic-bezier", config = { type = "bezier", points = { { 0.215, 0.61 }, { 0.355, 1 } } } },
|
||||
{ name = "easeOutQuint", config = { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } } },
|
||||
{ name = "easeInOutCubic", config = { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } } },
|
||||
{ name = "linear", config = { type = "bezier", points = { { 0, 0 }, { 1, 1 } } } },
|
||||
{ name = "almostLinear", config = { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1 } } } },
|
||||
{ name = "quick", config = { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } } },
|
||||
{ name = "easy", config = { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 } },
|
||||
}
|
||||
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 3,
|
||||
gaps_out = 6,
|
||||
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = { colors = { C.colors.vivian1, C.colors.ado }, angle = 90 },
|
||||
inactive_border = { colors = { C.colors.pink, C.colors.vivian2 }, angle = 60 },
|
||||
},
|
||||
|
||||
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true,
|
||||
|
||||
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
|
||||
allow_tearing = false,
|
||||
|
||||
layout = "dwindle",
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 10,
|
||||
rounding_power = 2,
|
||||
|
||||
-- Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 1.0,
|
||||
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 100,
|
||||
render_power = 4,
|
||||
color = 0x66000000,
|
||||
color_inactive = 0x33000000,
|
||||
offset = "0, 10",
|
||||
scale = 1,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 2,
|
||||
passes = 3,
|
||||
new_optimizations = true,
|
||||
ignore_opacity = true,
|
||||
contrast = 1.0,
|
||||
brightness = 1.0,
|
||||
vibrancy = 0.0,
|
||||
vibrancy_darkness = 0.0,
|
||||
xray = false,
|
||||
noise = 0,
|
||||
popups = true,
|
||||
input_methods = true,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
})
|
||||
|
||||
for _, animation in ipairs(animations) do
|
||||
hl.animation(animation)
|
||||
end
|
||||
|
||||
for _, curve in ipairs(curves) do
|
||||
hl.curve(curve.name, curve.config)
|
||||
end
|
||||
|
||||
-- List of animation options
|
||||
-- "global"
|
||||
-- "border"
|
||||
-- "windows"
|
||||
-- "windowsIn"
|
||||
-- "windowsOut"
|
||||
-- "fadeIn"
|
||||
-- "fadeOut"
|
||||
-- "fade"
|
||||
-- "layers"
|
||||
-- "layersIn"
|
||||
-- "layersOut"
|
||||
-- "fadeLayersIn"
|
||||
-- "fadeLayersOut"
|
||||
-- "workspaces"
|
||||
-- "workspacesIn"
|
||||
-- "workspacesOut"
|
||||
-- "zoomFactor"
|
||||
for _, animation in ipairs(animations) do
|
||||
hl.animation(animation)
|
||||
end
|
||||
|
||||
@@ -6,9 +6,10 @@ hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "obs --scene 'Recording' --startreplaybuffer --minimize-to-tray")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "ideskpet start")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "Telegram -startintray")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "discord --enable-features=WaylandLinuxDrmSyncobj --start-minimized")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "discord --startminimized") --enable-features=WaylandLinuxDrmSyncobj --start-minimized")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "steam -silent")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "~/.config/hypr/scripts/gtk.sh")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "wl-paste --watch cliphist store")
|
||||
-- hl.exec_cmd("sleep 15s; " .. prefix .. "hyprpm reload")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "solaar -b symbolic --window hide")
|
||||
hl.exec_cmd("sleep 3s; " .. prefix .. "openrgb --startminimized")
|
||||
end)
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
local C = require("color")
|
||||
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 3,
|
||||
gaps_out = 6,
|
||||
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = { colors = { C.colors.vivian1, C.colors.ado }, angle = 90 },
|
||||
inactive_border = { colors = { C.colors.pink, C.colors.vivian2 }, angle = 60 },
|
||||
},
|
||||
|
||||
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true,
|
||||
|
||||
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
|
||||
allow_tearing = false,
|
||||
|
||||
layout = "dwindle",
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 10,
|
||||
rounding_power = 2,
|
||||
|
||||
-- Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 1.0,
|
||||
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 100,
|
||||
render_power = 4,
|
||||
color = 0x66000000,
|
||||
color_inactive = 0x33000000,
|
||||
offset = "0, 10",
|
||||
scale = 1,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 2,
|
||||
passes = 3,
|
||||
new_optimizations = true,
|
||||
ignore_opacity = true,
|
||||
contrast = 1.0,
|
||||
brightness = 1.0,
|
||||
vibrancy = 0.0,
|
||||
vibrancy_darkness = 0.0,
|
||||
xray = false,
|
||||
noise = 0,
|
||||
popups = true,
|
||||
input_methods = true,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
})
|
||||
@@ -8,8 +8,9 @@ hl.config({
|
||||
},
|
||||
|
||||
cursor = {
|
||||
no_hardware_cursors = false,
|
||||
no_hardware_cursors = true,
|
||||
use_cpu_buffer = 2,
|
||||
zoom_factor = 1.0,
|
||||
},
|
||||
|
||||
xwayland = {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "horizontal",
|
||||
action = "workspace",
|
||||
})
|
||||
@@ -1,7 +1,7 @@
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "",
|
||||
kb_variant = "",
|
||||
kb_layout = "us",
|
||||
kb_variant = "altgr-intl",
|
||||
kb_model = "",
|
||||
kb_options = "",
|
||||
kb_rules = "",
|
||||
@@ -19,15 +19,3 @@ hl.config({
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "horizontal",
|
||||
action = "workspace",
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
|
||||
hl.device({
|
||||
name = "epic-mouse-v1",
|
||||
sensitivity = 0,
|
||||
})
|
||||
|
||||
@@ -1,13 +1,78 @@
|
||||
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
||||
-- closeWindowBind:set_enabled(false)
|
||||
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
|
||||
local mainMod = "SUPER"
|
||||
local prefix = "app2unit -S out -- "
|
||||
local fileManager = "dolphin"
|
||||
|
||||
local MAX_ZOOM = 10
|
||||
local MIN_ZOOM = 1
|
||||
local ZOOM_TOGGLE_FACTOR = 1.5
|
||||
|
||||
---@param offset number
|
||||
---@return nil
|
||||
local function zoom(offset)
|
||||
local current = hl.get_config("cursor.zoom_factor")
|
||||
if offset ~= nil then
|
||||
current = current + offset
|
||||
elseif current ~= MIN_ZOOM then
|
||||
current = MIN_ZOOM
|
||||
else
|
||||
current = ZOOM_TOGGLE_FACTOR
|
||||
end
|
||||
current = math.max(MIN_ZOOM, math.min(MAX_ZOOM, current))
|
||||
hl.config({ cursor = { zoom_factor = current } })
|
||||
end
|
||||
|
||||
-- FOR TESTING PURPOSES DON'T FORGET OR DELETE
|
||||
-- hl.notification.create({
|
||||
-- text = "Found: " .. win.title,
|
||||
-- timeout = 3000,
|
||||
-- })
|
||||
|
||||
local function appSearch(appName)
|
||||
local lookupName = {
|
||||
["spotify-launcher"] = "Spotify",
|
||||
["zterm"] = "ZTerm",
|
||||
["Telegram"] = "org.telegram.desktop",
|
||||
}
|
||||
local name = lookupName[appName] or appName
|
||||
local app = hl.get_window("title:" .. name)
|
||||
or hl.get_window("class:" .. name)
|
||||
or hl.get_window("initialtitle:" .. name)
|
||||
or hl.get_window("initialclass:" .. name)
|
||||
|
||||
if app then
|
||||
hl.dispatch(hl.dsp.focus({ workspace = app.workspace.id }))
|
||||
hl.dispatch(hl.dsp.focus({ window = app }))
|
||||
else
|
||||
hl.dispatch(hl.dsp.exec_cmd(prefix .. appName))
|
||||
end
|
||||
end
|
||||
|
||||
-- Zooming
|
||||
hl.bind(mainMod .. " + GRAVE", zoom)
|
||||
hl.bind(mainMod .. " + mouse_up", function()
|
||||
zoom(0.5)
|
||||
end)
|
||||
hl.bind(mainMod .. " + mouse_down", function()
|
||||
zoom(-0.5)
|
||||
end)
|
||||
|
||||
-- Zachjittery
|
||||
hl.bind(mainMod .. " + CTRL + RETURN", hl.dsp.exec_cmd("zshell-cli shell call visibilities toggleLauncher ''"))
|
||||
-- hl.bind(mainMod .. " + CTRL + RETURN", hl.dsp.global("zshell:toggle-launcher"))
|
||||
hl.bind(mainMod .. " + RETURN", hl.dsp.exec_cmd(prefix .. "zterm"))
|
||||
hl.bind(mainMod .. " + RETURN", function()
|
||||
appSearch("zterm")
|
||||
end)
|
||||
hl.bind(mainMod .. " + CTRL + RETURN", hl.dsp.global("zshell:toggle-launcher"))
|
||||
hl.bind(mainMod .. " + SHIFT + D", hl.dsp.global("zshell:toggle-drawing"))
|
||||
hl.bind(mainMod .. " + N", hl.dsp.global("zshell:toggle-nc"))
|
||||
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.global("zshell:screenshot"))
|
||||
hl.bind(mainMod .. " + CTRL + S", hl.dsp.global("zshell:screenshotFreeze"))
|
||||
hl.bind(mainMod .. " + L", hl.dsp.global("zshell:lock"))
|
||||
hl.bind(mainMod .. " + I", hl.dsp.global("zshell:toggle-settings"))
|
||||
hl.bind(mainMod .. " + SHIFT + C", hl.dsp.global("zshell:toggle-clipboard"))
|
||||
hl.bind(
|
||||
mainMod .. " + CTRL + SHIFT + R",
|
||||
hl.dsp.exec_cmd("zshell-cli shell kill; sleep 0.5; " .. prefix .. "zshell-cli shell start")
|
||||
)
|
||||
hl.bind(mainMod .. " + CTRL + SHIFT + K", hl.dsp.exec_cmd("zshell-cli shell kill"))
|
||||
|
||||
-- QML
|
||||
hl.bind("CTRL + mouse:274", hl.dsp.exec_cmd("ideskpet toggle-region"))
|
||||
@@ -15,11 +80,17 @@ hl.bind("SHIFT + mouse:274", hl.dsp.exec_cmd("ideskpet toggle-layer"))
|
||||
hl.bind(mainMod .. " + Z", hl.dsp.exec_cmd("ideskpet cycle-zindex"))
|
||||
|
||||
-- Apps
|
||||
hl.bind(mainMod .. " + C", hl.dsp.exec_cmd(prefix .. "Telegram"))
|
||||
hl.bind(mainMod .. " + V", hl.dsp.exec_cmd(prefix .. "discord"))
|
||||
hl.bind(mainMod .. " + V", function()
|
||||
appSearch("discord")
|
||||
end)
|
||||
hl.bind(mainMod .. " + C", function()
|
||||
appSearch("Telegram")
|
||||
end)
|
||||
hl.bind(mainMod .. " + S", function()
|
||||
appSearch("spotify-launcher")
|
||||
end)
|
||||
hl.bind(mainMod .. " + B", hl.dsp.exec_cmd(prefix .. "librewolf"))
|
||||
hl.bind(mainMod .. " + S", hl.dsp.exec_cmd(prefix .. "spotify-launcher"))
|
||||
hl.bind(mainMod .. " + X", hl.dsp.exec_cmd("SDL_VIDEODRIVER='x11' " .. prefix .. "osu-lazer"))
|
||||
hl.bind(mainMod .. " + X", hl.dsp.exec_cmd("SDL_VIDEODRIVER='wayland' " .. prefix .. "osu-lazer"))
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||
|
||||
-- Media
|
||||
@@ -27,7 +98,8 @@ hl.bind(mainMod .. " + F1", hl.dsp.exec_cmd("playerctl play-pause"))
|
||||
hl.bind(mainMod .. " + F2", hl.dsp.exec_cmd("playerctl previous"))
|
||||
hl.bind(mainMod .. " + F3", hl.dsp.exec_cmd("playerctl next"))
|
||||
hl.bind("PRINT", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"))
|
||||
hl.bind("code:51", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"))
|
||||
hl.bind(mainMod .. " + PRINT", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 0.32"))
|
||||
hl.bind("code:172", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"))
|
||||
hl.bind("code:121", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"))
|
||||
hl.bind("code:122", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"))
|
||||
hl.bind("code:123", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+ --limit 1.0"))
|
||||
@@ -39,6 +111,7 @@ hl.bind(mainMod .. " + T", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mainMod .. " + K", hl.dsp.layout("swapsplit"))
|
||||
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit"))
|
||||
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
|
||||
hl.bind(mainMod .. " + SHIFT + F", hl.dsp.window.fullscreen_state({ internal = 3, client = 3, action = "toggle" }))
|
||||
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
|
||||
@@ -51,8 +124,8 @@ hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Workspaces
|
||||
-- hl.bind("code:113", hl.dsp.focus({ workspace = "m+1" }))
|
||||
-- hl.bind("code:114", hl.dsp.focus({ workspace = "m-1" }))
|
||||
hl.bind("code:171", hl.dsp.focus({ workspace = "m+1" }))
|
||||
hl.bind("code:173", hl.dsp.focus({ workspace = "m-1" }))
|
||||
hl.bind("ALT + TAB", hl.dsp.focus({ workspace = "m+1" }))
|
||||
hl.bind(mainMod .. " + TAB", hl.dsp.focus({ workspace = "m-1" }))
|
||||
hl.bind(mainMod .. " + CTRL + left", hl.dsp.window.swap({ direction = "left" }))
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
hl.layer_rule({
|
||||
match = { namespace = "ZShell-Bar" },
|
||||
blur = true,
|
||||
ignore_alpha = 0.5,
|
||||
})
|
||||
|
||||
hl.layer_rule({
|
||||
match = { namespace = "ZShell-Auth" },
|
||||
blur = true,
|
||||
ignore_alpha = 0.5,
|
||||
})
|
||||
@@ -3,6 +3,7 @@ hl.config({
|
||||
force_default_wallpaper = 1, -- Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true, -- If true disables the random hyprland logo / anime girl background. :(
|
||||
mouse_move_enables_dpms = true,
|
||||
key_press_enables_dpms = true,
|
||||
disable_splash_rendering = true,
|
||||
allow_session_lock_restore = true,
|
||||
session_lock_xray = true,
|
||||
|
||||
@@ -2,5 +2,5 @@ hl.monitor({
|
||||
output = "DP-2",
|
||||
mode = "2560x1440@143.97",
|
||||
position = "auto",
|
||||
scale = "1.33",
|
||||
scale = "1.25",
|
||||
})
|
||||
|
||||
@@ -4,6 +4,7 @@ local classes = {
|
||||
"nm-connection-editor",
|
||||
"mpv",
|
||||
"swayimg",
|
||||
"xdg-desktop-portal-gtk",
|
||||
".*org.pulseaudio.pavucontrol.*",
|
||||
}
|
||||
|
||||
@@ -11,7 +12,6 @@ local titles = {
|
||||
"Picture in Picture",
|
||||
"Friends List",
|
||||
"Save Image - *",
|
||||
"AniShio",
|
||||
}
|
||||
|
||||
for _, class in ipairs(classes) do
|
||||
@@ -32,6 +32,60 @@ for _, title in ipairs(titles) do
|
||||
})
|
||||
end
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
initial_title = "Star Rail",
|
||||
},
|
||||
fullscreen_state = 3,
|
||||
render_unfocused = true,
|
||||
content = "game",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
title = "Slay the Spire 2",
|
||||
},
|
||||
render_unfocused = true,
|
||||
content = "game",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
title = "Honkai: Star Rail",
|
||||
},
|
||||
render_unfocused = true,
|
||||
fullscreen_state = 3,
|
||||
content = "game",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
initial_title = "Brawlhalla",
|
||||
},
|
||||
fullscreen_state = 3,
|
||||
content = "game",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "osu!",
|
||||
title = "osu!",
|
||||
},
|
||||
fullscreen_state = 3,
|
||||
content = "game",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "hyprland-share-picker",
|
||||
title = "hyprland-share-picker",
|
||||
},
|
||||
float = true,
|
||||
pin = true,
|
||||
center = true,
|
||||
size = { 600, 400 },
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "fix-xwayland-drags",
|
||||
match = {
|
||||
@@ -56,9 +110,7 @@ hl.window_rule({
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
fullscreen_state_client = 2,
|
||||
fullscreen_state_internal = 2,
|
||||
class = "librewolf",
|
||||
},
|
||||
|
||||
idle_inhibit = "always",
|
||||
@@ -66,22 +118,16 @@ hl.window_rule({
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
fullscreen_state_client = 4,
|
||||
fullscreen_state_internal = 4,
|
||||
content = "game",
|
||||
fullscreen_state_client = 2,
|
||||
},
|
||||
|
||||
idle_inhibit = "always",
|
||||
})
|
||||
|
||||
hl.layer_rule({
|
||||
match = { namespace = "ZShell-Bar" },
|
||||
blur = true,
|
||||
ignore_alpha = 0.5,
|
||||
})
|
||||
hl.window_rule({
|
||||
match = {
|
||||
content = "game",
|
||||
},
|
||||
|
||||
hl.layer_rule({
|
||||
match = { namespace = "ZShell-Auth" },
|
||||
blur = true,
|
||||
ignore_alpha = 0.5,
|
||||
idle_inhibit = "always",
|
||||
})
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
version: 5
|
||||
daemon:
|
||||
log_level: info
|
||||
admin_group: wheel
|
||||
disable_clocks_cleanup: false
|
||||
apply_settings_timer: 5
|
||||
current_profile: null
|
||||
auto_switch_profiles: false
|
||||
@@ -0,0 +1,32 @@
|
||||
selected_tab: oc_page
|
||||
selected_gpu: 10DE:2C02-1462:5314-0000:08:00.0
|
||||
plots_time_period: 60
|
||||
plots_per_row: 2
|
||||
stats_poll_interval_ms: 250
|
||||
gpus:
|
||||
10DE:2C02-1462:5314-0000:08:00.0:
|
||||
plots:
|
||||
- - !Temperature GPU
|
||||
- !Temperature GPU Hotspot
|
||||
- - GpuClock
|
||||
- VramClock
|
||||
- - FanRpm
|
||||
- FanPwm
|
||||
- - PowerCurrent
|
||||
- PowerCap
|
||||
10DE:1E81-1043:8712-0000:08:00.0:
|
||||
plots:
|
||||
- - !Temperature GPU
|
||||
- !Temperature GPU Hotspot
|
||||
- !Temperature VRAM
|
||||
- - GpuClock
|
||||
- VramClock
|
||||
- - FanRpm
|
||||
- FanPwm
|
||||
- - PowerCurrent
|
||||
- PowerCap
|
||||
theme: automatic
|
||||
color_scheme: Auto
|
||||
window_size:
|
||||
width: 2030
|
||||
height: 1091
|
||||
@@ -0,0 +1,30 @@
|
||||
[Default Applications]
|
||||
application/json=nvim.desktop;
|
||||
application/pdf=librewolf.desktop;
|
||||
application/toml=nvim.desktop;
|
||||
application/x-extension.htm=librewolf.desktop;
|
||||
application/x-extension.html=librewolf.desktop;
|
||||
application/x-extension.shtml=librewolf.desktop;
|
||||
application/x-extension.xht=librewolf.desktop;
|
||||
application/x-extension.xhtml=librewolf.desktop;
|
||||
application/x-shellscript=code.desktop;
|
||||
application/xhtml+xml=librewolf.desktop;
|
||||
image/*=swayimg.desktop;
|
||||
image/jpeg=swayimg.desktop;
|
||||
image/jpg=swayimg.desktop;
|
||||
image/png=swayimg.desktop;
|
||||
image/webp=swayimg.desktop;
|
||||
inode/directory=org.kde.dolphin.desktop;
|
||||
text/*=nvim.desktop;
|
||||
text/html=librewolf.desktop
|
||||
text/plain=nvim.desktop;
|
||||
video/*=mpv.desktop;
|
||||
video/mp4=mpv.desktop;
|
||||
x-scheme-handler/discord-1216669957799018608=discord-1216669957799018608.desktop
|
||||
x-scheme-handler/terminal=kitty.desktop;
|
||||
x-scheme-handler/everest=/home/inorishio/.local/share/applications/Olympus.desktop
|
||||
x-scheme-handler/ror2mm=r2modman.desktop
|
||||
x-scheme-handler/http=librewolf.desktop
|
||||
x-scheme-handler/https=librewolf.desktop
|
||||
x-scheme-handler/about=librewolf.desktop
|
||||
x-scheme-handler/unknown=librewolf.desktop
|
||||
@@ -1,30 +0,0 @@
|
||||
// Bar.qml
|
||||
import Quickshell
|
||||
import qs.Widgets
|
||||
|
||||
Scope {
|
||||
// no more time object
|
||||
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
|
||||
PanelWindow {
|
||||
required property var modelData
|
||||
screen: modelData
|
||||
|
||||
anchors {
|
||||
top: true
|
||||
left: true
|
||||
right: true
|
||||
}
|
||||
|
||||
implicitHeight: 30
|
||||
|
||||
Clock {
|
||||
anchors.centerIn: parent
|
||||
|
||||
// no more time binding
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
// ClockWidget.qml
|
||||
import QtQuick
|
||||
|
||||
Text {
|
||||
// we no longer need time as an input
|
||||
|
||||
// directly access the time property from the Time singleton
|
||||
text: Time.time
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
// Time.qml
|
||||
pragma Singleton
|
||||
|
||||
import Quickshell
|
||||
import QtQuick
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
// an expression can be broken across multiple lines using {}
|
||||
readonly property string time: {
|
||||
// The passed format string matches the default output of
|
||||
// the `date` command.
|
||||
Qt.formatDateTime(clock.date, "ddd MMM d hh:mm:ss AP t yyyy")
|
||||
}
|
||||
|
||||
SystemClock {
|
||||
id: clock
|
||||
precision: SystemClock.Seconds
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
// shell.qml
|
||||
import Quickshell
|
||||
import qs.Widgets
|
||||
|
||||
Scope {
|
||||
Bar {}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
|
||||
WlSessionLockSurface {
|
||||
id: lockSurface
|
||||
|
||||
// match monitor resolution
|
||||
anchors.fill: screen
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: "#000000bb"
|
||||
|
||||
Column {
|
||||
anchors.centerIn: parent
|
||||
spacing: 12
|
||||
|
||||
Text {
|
||||
text: "Locked"
|
||||
color: "white"
|
||||
font.pointSize: 24
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: password
|
||||
width: 240
|
||||
placeholderText: "Password"
|
||||
echoMode: TextInput.Password
|
||||
|
||||
Keys.onReturnPressed: {
|
||||
if (password.text === "hello") {
|
||||
locker.unlock()
|
||||
} else {
|
||||
password.text = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
Column {
|
||||
id: clock
|
||||
|
||||
width: parent.width / 2
|
||||
spacing: 0
|
||||
|
||||
Label {
|
||||
id:headerTextLabel
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
font.pointSize: root.font.pointSize * 4
|
||||
color: config.HeaderTextColor
|
||||
renderType: Text.QtRendering
|
||||
text: config.HeaderText
|
||||
}
|
||||
|
||||
Label {
|
||||
id: timeLabel
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
font.pointSize: root.font.pointSize * 9
|
||||
font.bold: true
|
||||
color: config.TimeTextColor
|
||||
renderType: Text.QtRendering
|
||||
|
||||
function updateTime() {
|
||||
text = new Date().toLocaleTimeString(Qt.locale(config.Locale), config.HourFormat == "long" ? Locale.LongFormat : config.HourFormat !== "" ? config.HourFormat : Locale.ShortFormat)
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
id: dateLabel
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
color: config.DateTextColor
|
||||
font.pointSize: root.font.pointSize * 3
|
||||
font.bold: true
|
||||
renderType: Text.QtRendering
|
||||
|
||||
function updateTime() {
|
||||
text = new Date().toLocaleDateString(Qt.locale(config.Locale), config.DateFormat == "short" ? Locale.ShortFormat : config.DateFormat !== "" ? config.DateFormat : Locale.LongFormat)
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 1000
|
||||
repeat: true
|
||||
running: true
|
||||
onTriggered: {
|
||||
dateLabel.updateTime()
|
||||
timeLabel.updateTime()
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
dateLabel.updateTime()
|
||||
timeLabel.updateTime()
|
||||
}
|
||||
}
|
||||
@@ -1,526 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
Column {
|
||||
id: inputContainer
|
||||
|
||||
Layout.fillWidth: true
|
||||
|
||||
property ComboBox exposeSession: sessionSelect.exposeSession
|
||||
property bool failed
|
||||
|
||||
Item {
|
||||
id: errorMessageField
|
||||
|
||||
// change also in selectSession
|
||||
height: root.font.pointSize * 2
|
||||
width: parent.width / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Label {
|
||||
id: errorMessage
|
||||
|
||||
width: parent.width
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
text: failed ? config.TranslateLoginFailedWarning || textConstants.loginFailed + "!" : keyboard.capsLock ? config.TranslateCapslockWarning || textConstants.capslockWarning : null
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
font.italic: true
|
||||
color: config.WarningColor
|
||||
opacity: 0
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "fail"
|
||||
when: failed
|
||||
PropertyChanges {
|
||||
target: errorMessage
|
||||
opacity: 1
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "capslock"
|
||||
when: keyboard.capsLock
|
||||
PropertyChanges {
|
||||
target: errorMessage
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "opacity"
|
||||
duration: 100
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: usernameField
|
||||
|
||||
height: root.font.pointSize * 4.5
|
||||
width: parent.width / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
ComboBox {
|
||||
id: selectUser
|
||||
|
||||
width: parent.height
|
||||
height: parent.height
|
||||
anchors.left: parent.left
|
||||
z: 2
|
||||
|
||||
model: userModel
|
||||
currentIndex: model.lastIndex
|
||||
textRole: "name"
|
||||
hoverEnabled: true
|
||||
onActivated: {
|
||||
username.text = currentText
|
||||
}
|
||||
|
||||
property var popkey: config.RightToLeftLayout == "true" ? Qt.Key_Right : Qt.Key_Left
|
||||
Keys.onPressed: function(event) {
|
||||
if (event.key == Qt.Key_Down && !popup.opened)
|
||||
username.forceActiveFocus();
|
||||
if ((event.key == Qt.Key_Up || event.key == popkey) && !popup.opened)
|
||||
popup.open();
|
||||
}
|
||||
KeyNavigation.down: username
|
||||
KeyNavigation.right: username
|
||||
|
||||
delegate: ItemDelegate {
|
||||
// minus padding
|
||||
width: popupHandler.width - 20
|
||||
anchors.horizontalCenter: popupHandler.horizontalCenter
|
||||
|
||||
contentItem: Text {
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
text: model.name
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
font.capitalization: Font.AllLowercase
|
||||
font.family: root.font.family
|
||||
color: config.DropdownTextColor
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: selectUser.highlightedIndex === index ? config.DropdownSelectedBackgroundColor : "transparent"
|
||||
}
|
||||
}
|
||||
|
||||
indicator: Button {
|
||||
id: usernameIcon
|
||||
|
||||
width: selectUser.height * 1
|
||||
height: parent.height
|
||||
anchors.left: parent.left
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.leftMargin: selectUser.height * 0
|
||||
|
||||
icon.height: parent.height * 0.25
|
||||
icon.width: parent.height * 0.25
|
||||
enabled: false
|
||||
icon.color: config.UserIconColor
|
||||
icon.source: Qt.resolvedUrl("../Assets/User.svg")
|
||||
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
}
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
}
|
||||
|
||||
popup: Popup {
|
||||
id: popupHandler
|
||||
|
||||
implicitHeight: contentItem.implicitHeight
|
||||
width: usernameField.width
|
||||
y: parent.height - username.height / 3
|
||||
x: config.RightToLeftLayout == "true" ? -loginButton.width + selectUser.width : 0
|
||||
rightMargin: config.RightToLeftLayout == "true" ? root.padding + usernameField.width / 2 : undefined
|
||||
padding: 10
|
||||
|
||||
contentItem: ListView {
|
||||
implicitHeight: contentHeight + 20
|
||||
|
||||
clip: true
|
||||
model: selectUser.popup.visible ? selectUser.delegateModel : null
|
||||
currentIndex: selectUser.highlightedIndex
|
||||
ScrollIndicator.vertical: ScrollIndicator { }
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
radius: config.RoundCorners / 2
|
||||
color: config.DropdownBackgroundColor
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
enter: Transition {
|
||||
NumberAnimation { property: "opacity"; from: 0; to: 1 }
|
||||
}
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: selectUser.down
|
||||
PropertyChanges {
|
||||
target: usernameIcon
|
||||
icon.color: Qt.lighter(config.HoverUserIconColor, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hovered"
|
||||
when: selectUser.hovered
|
||||
PropertyChanges {
|
||||
target: usernameIcon
|
||||
icon.color: Qt.lighter(config.HoverUserIconColor, 1.2)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "focused"
|
||||
when: selectUser.activeFocus
|
||||
PropertyChanges {
|
||||
target: usernameIcon
|
||||
icon.color: config.HoverUserIconColor
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "color, border.color, icon.color"
|
||||
duration: 150
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: username
|
||||
|
||||
anchors.centerIn: parent
|
||||
height: root.font.pointSize * 3
|
||||
width: parent.width
|
||||
horizontalAlignment: TextInput.AlignHCenter
|
||||
z: 1
|
||||
|
||||
text: config.ForceLastUser == "true" ? selectUser.currentText : null
|
||||
color: config.LoginFieldTextColor
|
||||
font.bold: true
|
||||
font.capitalization: config.AllowUppercaseLettersInUsernames == "false" ? Font.AllLowercase : Font.MixedCase
|
||||
placeholderText: config.TranslatePlaceholderUsername || textConstants.userName
|
||||
placeholderTextColor: config.PlaceholderTextColor
|
||||
selectByMouse: true
|
||||
renderType: Text.QtRendering
|
||||
|
||||
onFocusChanged:{
|
||||
if(focus)
|
||||
selectAll()
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: config.LoginFieldBackgroundColor
|
||||
opacity: 0.6
|
||||
border.color: "transparent"
|
||||
border.width: parent.activeFocus ? 2 : 1
|
||||
radius: config.RoundCorners || 0
|
||||
}
|
||||
|
||||
onAccepted: config.AllowUppercaseLettersInUsernames == "false" ? sddm.login(username.text.toLowerCase(), password.text, sessionSelect.selectedSession) : sddm.login(username.text, password.text, sessionSelect.selectedSession)
|
||||
KeyNavigation.down: passwordIcon
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "focused"
|
||||
when: username.activeFocus
|
||||
PropertyChanges {
|
||||
target: username.background
|
||||
border.color: config.HighlightBorderColor
|
||||
}
|
||||
PropertyChanges {
|
||||
target: username
|
||||
color: Qt.lighter(config.LoginFieldTextColor, 1.15)
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: passwordField
|
||||
|
||||
height: root.font.pointSize * 4.5
|
||||
width: parent.width / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Button {
|
||||
id: passwordIcon
|
||||
|
||||
height: parent.height
|
||||
width: selectUser.height * 1
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: selectUser.height * 0
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
z: 2
|
||||
|
||||
icon.height: parent.height * 0.25
|
||||
icon.width: parent.height * 0.25
|
||||
icon.color: config.PasswordIconColor
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password2.svg")
|
||||
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "visiblePasswordFocused"
|
||||
when: passwordIcon.checked && passwordIcon.activeFocus
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password.svg")
|
||||
icon.color: config.HoverPasswordIconColor
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "visiblePasswordHovered"
|
||||
when: passwordIcon.checked && passwordIcon.hovered
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password.svg")
|
||||
icon.color: config.HoverPasswordIconColor
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "visiblePassword"
|
||||
when: passwordIcon.checked
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password.svg")
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hiddenPasswordFocused"
|
||||
when: passwordIcon.enabled && passwordIcon.activeFocus
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password2.svg")
|
||||
icon.color: config.HoverPasswordIconColor
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hiddenPasswordHovered"
|
||||
when: passwordIcon.hovered
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password2.svg")
|
||||
icon.color: config.HoverPasswordIconColor
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
onClicked: toggle()
|
||||
Keys.onReturnPressed: toggle()
|
||||
Keys.onEnterPressed: toggle()
|
||||
KeyNavigation.down: password
|
||||
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: password
|
||||
|
||||
height: root.font.pointSize * 3
|
||||
width: parent.width
|
||||
anchors.centerIn: parent
|
||||
horizontalAlignment: TextInput.AlignHCenter
|
||||
|
||||
font.bold: true
|
||||
color: config.PasswordFieldTextColor
|
||||
focus: config.PasswordFocus == "true" ? true : false
|
||||
echoMode: passwordIcon.checked ? TextInput.Normal : TextInput.Password
|
||||
placeholderText: config.TranslatePlaceholderPassword || textConstants.password
|
||||
placeholderTextColor: config.PlaceholderTextColor
|
||||
passwordCharacter: "•"
|
||||
passwordMaskDelay: config.HideCompletePassword == "true" ? undefined : 1000
|
||||
renderType: Text.QtRendering
|
||||
selectByMouse: true
|
||||
|
||||
background: Rectangle {
|
||||
color: config.PasswordFieldBackgroundColor
|
||||
opacity: 0.6
|
||||
border.color: "transparent"
|
||||
border.width: parent.activeFocus ? 2 : 1
|
||||
radius: config.RoundCorners || 0
|
||||
}
|
||||
onAccepted: config.AllowUppercaseLettersInUsernames == "false" ? sddm.login(username.text.toLowerCase(), password.text, sessionSelect.selectedSession) : sddm.login(username.text, password.text, sessionSelect.selectedSession)
|
||||
KeyNavigation.down: loginButton
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "focused"
|
||||
when: password.activeFocus
|
||||
PropertyChanges {
|
||||
target: password.background
|
||||
border.color: config.HighlightBorderColor
|
||||
}
|
||||
PropertyChanges {
|
||||
target: password
|
||||
color: Qt.lighter(config.LoginFieldTextColor, 1.15)
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "color, border.color"
|
||||
duration: 150
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Item {
|
||||
id: login
|
||||
|
||||
// important
|
||||
// try 4 or 9 ...
|
||||
height: root.font.pointSize * 9
|
||||
width: parent.width / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
visible: config.HideLoginButton == "true" ? false : true
|
||||
|
||||
Button {
|
||||
id: loginButton
|
||||
|
||||
height: root.font.pointSize * 3
|
||||
implicitWidth: parent.width
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
text: config.TranslateLogin || textConstants.login
|
||||
enabled: config.AllowEmptyPassword == "true" || username.text != "" && password.text != "" ? true : false
|
||||
hoverEnabled: true
|
||||
|
||||
contentItem: Text {
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
font.bold: true
|
||||
font.pointSize: root.font.pointSize
|
||||
font.family: root.font.family
|
||||
color: config.LoginButtonTextColor
|
||||
text: parent.text
|
||||
opacity: 0.0
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
id: buttonBackground
|
||||
|
||||
color: config.LoginButtonBackgroundColor
|
||||
opacity: 0.0
|
||||
radius: config.RoundCorners || 0
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: loginButton.down
|
||||
PropertyChanges {
|
||||
target: buttonBackground
|
||||
color: Qt.darker(config.LoginButtonBackgroundColor, 1.1)
|
||||
opacity: 0.0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: loginButton.contentItem
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hovered"
|
||||
when: loginButton.hovered
|
||||
PropertyChanges {
|
||||
target: buttonBackground
|
||||
color: Qt.lighter(config.LoginButtonBackgroundColor, 1.15)
|
||||
opacity: 0.0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: loginButton.contentItem
|
||||
opacity: 0.0
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "focused"
|
||||
when: loginButton.activeFocus
|
||||
PropertyChanges {
|
||||
target: buttonBackground
|
||||
color: Qt.lighter(config.LoginButtonBackgroundColor, 1.2)
|
||||
opacity: 0.0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: loginButton.contentItem
|
||||
opacity: 0.0
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "enabled"
|
||||
when: loginButton.enabled
|
||||
PropertyChanges {
|
||||
target: buttonBackground;
|
||||
color: config.LoginButtonBackgroundColor;
|
||||
opacity: 0.0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: loginButton.contentItem;
|
||||
opacity: 0.0
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "opacity, color";
|
||||
duration: 300
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
onClicked: config.AllowUppercaseLettersInUsernames == "false" ? sddm.login(username.text.toLowerCase(), password.text, sessionSelect.selectedSession) : sddm.login(username.text, password.text, sessionSelect.selectedSession)
|
||||
Keys.onReturnPressed: clicked()
|
||||
Keys.onEnterPressed: clicked()
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: sddm
|
||||
function onLoginSucceeded() {}
|
||||
function onLoginFailed() {
|
||||
failed = true
|
||||
resetError.running ? resetError.stop() && resetError.start() : resetError.start()
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: resetError
|
||||
interval: 2000
|
||||
onTriggered: failed = false
|
||||
running: false
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import SddmComponents 2.0 as SDDM
|
||||
|
||||
ColumnLayout {
|
||||
id: formContainer
|
||||
SDDM.TextConstants { id: textConstants }
|
||||
|
||||
property int p: config.ScreenPadding == "" ? 0 : config.ScreenPadding
|
||||
property string a: config.FormPosition
|
||||
|
||||
Clock {
|
||||
id: clock
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
|
||||
// important
|
||||
Layout.preferredHeight: root.height / 2
|
||||
Layout.leftMargin: p != "0" ? a == "left" ? -p : a == "right" ? p : 0 : 0
|
||||
}
|
||||
|
||||
Input {
|
||||
id: input
|
||||
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Layout.preferredHeight: root.height / 20
|
||||
Layout.leftMargin: p != "0" ? a == "left" ? -p : a == "right" ? p : 0 : 0
|
||||
Layout.topMargin: 0
|
||||
}
|
||||
|
||||
SystemButtons {
|
||||
id: systemButtons
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
|
||||
Layout.preferredHeight: root.height / 5
|
||||
Layout.maximumHeight: root.height / 5
|
||||
Layout.leftMargin: p != "0" ? a == "left" ? -p : a == "right" ? p : 0 : 0
|
||||
|
||||
exposedSession: input.exposeSession
|
||||
}
|
||||
|
||||
SessionButton {
|
||||
id: sessionSelect
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
|
||||
Layout.preferredHeight: root.height / 54
|
||||
Layout.maximumHeight: root.height / 54
|
||||
Layout.leftMargin: p != "0" ? a == "left" ? -p : a == "right" ? p : 0 : 0
|
||||
}
|
||||
}
|
||||
@@ -1,149 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
Item {
|
||||
id: sessionButton
|
||||
|
||||
height: root.font.pointSize
|
||||
width: parent.width / 2
|
||||
|
||||
property var selectedSession: selectSession.currentIndex
|
||||
property string textConstantSession
|
||||
property int loginButtonWidth
|
||||
property ComboBox exposeSession: selectSession
|
||||
|
||||
ComboBox {
|
||||
id: selectSession
|
||||
|
||||
// important
|
||||
// change also in errorMessage
|
||||
height: root.font.pointSize * 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
hoverEnabled: true
|
||||
model: sessionModel
|
||||
currentIndex: model.lastIndex
|
||||
textRole: "name"
|
||||
|
||||
Keys.onPressed: function(event) {
|
||||
if ((event.key == Qt.Key_Left || event.key == Qt.Key_Right) && !popup.opened) {
|
||||
popup.open();
|
||||
}
|
||||
}
|
||||
|
||||
delegate: ItemDelegate {
|
||||
// minus padding
|
||||
width: popupHandler.width - 20
|
||||
anchors.horizontalCenter: popupHandler.horizontalCenter
|
||||
|
||||
contentItem: Text {
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
text: model.name
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
font.family: root.font.family
|
||||
color: config.DropdownTextColor
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: selectSession.highlightedIndex === index ? config.DropdownSelectedBackgroundColor : "transparent"
|
||||
}
|
||||
}
|
||||
|
||||
indicator {
|
||||
visible: false
|
||||
}
|
||||
|
||||
contentItem: Text {
|
||||
id: displayedItem
|
||||
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
text: (config.TranslateSessionSelection || "Session") + " (" + selectSession.currentText + ")"
|
||||
color: config.SessionButtonTextColor
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
font.family: root.font.family
|
||||
|
||||
Keys.onReleased: parent.popup.open()
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
height: parent.visualFocus ? 2 : 0
|
||||
width: displayedItem.implicitWidth
|
||||
|
||||
color: "transparent"
|
||||
}
|
||||
|
||||
popup: Popup {
|
||||
id: popupHandler
|
||||
|
||||
implicitHeight: contentItem.implicitHeight
|
||||
width: sessionButton.width
|
||||
y: parent.height - 1
|
||||
x: -popupHandler.width/2 + displayedItem.width/2
|
||||
padding: 10
|
||||
|
||||
contentItem: ListView {
|
||||
implicitHeight: contentHeight + 20
|
||||
|
||||
clip: true
|
||||
model: selectSession.popup.visible ? selectSession.delegateModel : null
|
||||
currentIndex: selectSession.highlightedIndex
|
||||
ScrollIndicator.vertical: ScrollIndicator { }
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
radius: config.RoundCorners / 2
|
||||
color: config.DropdownBackgroundColor
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
enter: Transition {
|
||||
NumberAnimation { property: "opacity"; from: 0; to: 1 }
|
||||
}
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: selectSession.down
|
||||
PropertyChanges {
|
||||
target: displayedItem
|
||||
color: Qt.darker(config.HoverSessionButtonTextColor, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hovered"
|
||||
when: selectSession.hovered
|
||||
PropertyChanges {
|
||||
target: displayedItem
|
||||
color: Qt.lighter(config.HoverSessionButtonTextColor, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "focused"
|
||||
when: selectSession.visualFocus
|
||||
PropertyChanges {
|
||||
target: displayedItem
|
||||
color: config.HoverSessionButtonTextColor
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "color"
|
||||
duration: 150
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
RowLayout {
|
||||
|
||||
spacing: root.font.pointSize
|
||||
|
||||
property var shutdown: ["Shutdown", config.TranslateShutdown || textConstants.shutdown, sddm.canPowerOff]
|
||||
property var reboot: ["Reboot", config.TranslateReboot || textConstants.reboot, sddm.canReboot]
|
||||
property var suspend: ["Suspend", config.TranslateSuspend || textConstants.suspend, sddm.canSuspend]
|
||||
property var hibernate: ["Hibernate", config.TranslateHibernate || textConstants.hibernate, sddm.canHibernate]
|
||||
|
||||
property ComboBox exposedSession
|
||||
|
||||
Repeater {
|
||||
id: systemButtons
|
||||
|
||||
model: [shutdown, reboot, suspend, hibernate]
|
||||
|
||||
RoundButton {
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
||||
Layout.topMargin: root.font.pointSize * 6.5
|
||||
|
||||
text: modelData[1]
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
icon.source: modelData ? Qt.resolvedUrl("../Assets/" + modelData[0] + ".svg") : ""
|
||||
icon.height: 2 * Math.round((root.font.pointSize * 3) / 2)
|
||||
icon.width: 2 * Math.round((root.font.pointSize * 3) / 2)
|
||||
icon.color: config.SystemButtonsIconsColor
|
||||
palette.buttonText: config.SystemButtonsIconsColor
|
||||
display: AbstractButton.TextUnderIcon
|
||||
visible: config.HideSystemButtons != "true" && (config.BypassSystemButtonsChecks == "true" ? 1 : modelData[2])
|
||||
hoverEnabled: true
|
||||
|
||||
background: Rectangle {
|
||||
height: 2
|
||||
width: parent.width
|
||||
|
||||
color: "transparent"
|
||||
}
|
||||
|
||||
Keys.onReturnPressed: clicked()
|
||||
onClicked: {
|
||||
parent.forceActiveFocus()
|
||||
index == 0 ? sddm.powerOff() : index == 1 ? sddm.reboot() : index == 2 ? sddm.suspend() : sddm.hibernate()
|
||||
}
|
||||
KeyNavigation.left: index > 0 ? parent.children[index-1] : null
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: parent.children[index].down
|
||||
PropertyChanges {
|
||||
target: parent.children[index]
|
||||
icon.color: root.palette.buttonText
|
||||
palette.buttonText: Qt.darker(root.palette.buttonText, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hovered"
|
||||
when: parent.children[index].hovered
|
||||
PropertyChanges {
|
||||
target: parent.children[index]
|
||||
icon.color: root.palette.buttonText
|
||||
palette.buttonText: Qt.lighter(root.palette.buttonText, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "focused"
|
||||
when: parent.children[index].activeFocus
|
||||
PropertyChanges {
|
||||
target: parent.children[index]
|
||||
icon.color: root.palette.buttonText
|
||||
palette.buttonText: root.palette.buttonText
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "palette.buttonText, border.color"
|
||||
duration: 150
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
|
||||
QtObject {
|
||||
id: sessionLocker
|
||||
|
||||
// store the lock object properly
|
||||
property WlSessionLock lock: WlSessionLock {
|
||||
id: theLock
|
||||
|
||||
onLocked: {
|
||||
console.log("Session LOCKED")
|
||||
}
|
||||
|
||||
onFinished: {
|
||||
console.log("Session UNLOCKED")
|
||||
}
|
||||
}
|
||||
|
||||
function startLock() {
|
||||
lock.requestLock()
|
||||
}
|
||||
|
||||
function unlock() {
|
||||
lock.unlockAndDestroy()
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
import Quickshell.Hyprland
|
||||
import QtQuick
|
||||
|
||||
PanelWindow {
|
||||
id: root
|
||||
|
||||
SessionLocker {
|
||||
id: locker
|
||||
}
|
||||
|
||||
// create a lock surface per monitor
|
||||
Component.onCompleted: {
|
||||
locker.startLock()
|
||||
for (let screen of Screens) {
|
||||
lockSurfaceComponent.createObject(root, { "screen": screen })
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: lockSurfaceComponent
|
||||
LockSurface { }
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import QtMultimedia
|
||||
import Quickshell.Wayland
|
||||
|
||||
PanelWindow {
|
||||
WlrLayershell.layer: WlrLayer.Background
|
||||
WlrLayershell.exclusiveZone: 1
|
||||
implicitHeight: Screen.height
|
||||
implicitWidth: Screen.width
|
||||
anchors {
|
||||
top: true
|
||||
bottom: true
|
||||
right: true
|
||||
left: true
|
||||
}
|
||||
|
||||
Video {
|
||||
visible: true
|
||||
anchors.fill: parent
|
||||
source: "file:///home/inorishio/Videos/clips/IHateWomen.mp4"
|
||||
loops: MediaPlayer.Infinite
|
||||
autoPlay: true
|
||||
muted: true
|
||||
fillMode: VideoOutput.PreserveAspectCrop
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 34 34"
|
||||
height="34"
|
||||
width="34">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path
|
||||
style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill"
|
||||
d="M 17,1 C 8.163444,1 1,8.163444 1,17 1,25.836556 8.163444,33 17,33 25.836556,33 33,25.836556 33,17 33,8.163444 25.836556,1 17,1 Z m 0,1 C 25.284271,2 32,8.7157288 32,17 32,25.284271 25.284271,32 17,32 8.7157288,32 2,25.284271 2,17 2,8.7157288 8.7157288,2 17,2 Z"
|
||||
id="path831" />
|
||||
<path
|
||||
id="path816"
|
||||
d="M 17 11 C 13.686292 11 11 13.686292 11 17 C 11 20.313708 13.686292 23 17 23 C 20.313708 23 23 20.313708 23 17 C 23 13.686292 20.313708 11 17 11 z M 17 12 A 5 5 0 0 1 22 17 A 5 5 0 0 1 17 22 A 5 5 0 0 1 12 17 A 5 5 0 0 1 17 12 z "
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.71428573;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 24 24" width="512" height="512"><path d="M23.821,11.181v0C22.943,9.261,19.5,3,12,3S1.057,9.261.179,11.181a1.969,1.969,0,0,0,0,1.64C1.057,14.739,4.5,21,12,21s10.943-6.261,11.821-8.181A1.968,1.968,0,0,0,23.821,11.181ZM12,18a6,6,0,1,1,6-6A6.006,6.006,0,0,1,12,18Z"/><circle cx="12" cy="12" r="4"/></svg>
|
||||
|
Before Width: | Height: | Size: 426 B |
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 512.19 512.19" style="enable-background:new 0 0 512.19 512.19;" xml:space="preserve" width="512" height="512">
|
||||
<g>
|
||||
<path d="M496.543,200.771c-19.259-31.537-43.552-59.707-71.915-83.392l59.733-59.733c8.185-8.475,7.95-21.98-0.525-30.165 c-8.267-7.985-21.374-7.985-29.641,0l-64.96,65.045c-40.269-23.918-86.306-36.385-133.141-36.053 c-132.075,0-207.339,90.411-240.448,144.299c-20.862,33.743-20.862,76.379,0,110.123c19.259,31.537,43.552,59.707,71.915,83.392 l-59.733,59.733c-8.475,8.185-8.71,21.691-0.525,30.165c8.185,8.475,21.691,8.71,30.165,0.525c0.178-0.172,0.353-0.347,0.525-0.525 l65.109-65.109c40.219,23.915,86.201,36.402,132.992,36.117c132.075,0,207.339-90.411,240.448-144.299 C517.405,277.151,517.405,234.515,496.543,200.771z M128.095,255.833c-0.121-70.575,56.992-127.885,127.567-128.006 c26.703-0.046,52.75,8.275,74.481,23.793l-30.976,30.976c-13.004-7.842-27.887-12.022-43.072-12.096 c-47.128,0-85.333,38.205-85.333,85.333c0.074,15.185,4.254,30.068,12.096,43.072l-30.976,30.976 C136.414,308.288,128.096,282.394,128.095,255.833z M256.095,383.833c-26.561-0.001-52.455-8.319-74.048-23.787l30.976-30.976 c13.004,7.842,27.887,12.022,43.072,12.096c47.128,0,85.333-38.205,85.333-85.333c-0.074-15.185-4.254-30.068-12.096-43.072 l30.976-30.976c41.013,57.434,27.702,137.242-29.732,178.255C308.845,375.558,282.798,383.879,256.095,383.833z"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="34"
|
||||
height="34"
|
||||
viewBox="0 0 34 34"
|
||||
version="1.1"
|
||||
id="svg8">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
transform="matrix(1.000593,0,0,1.0006688,0.99050505,-287.73702)">
|
||||
<path
|
||||
style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.00189281;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill"
|
||||
d="M 19.001953,1.1308594 V 2 H 19 v 11 h 1 V 2.3359375 A 15,15 45 0 1 32,17 15,15 45 0 1 21.001953,31.455078 v 1.033203 A 16.009488,16.010701 45 0 0 33.009766,17 16.009488,16.010701 45 0 0 19.001953,1.1308594 Z M 12.998047,1.5117188 A 16.009488,16.010701 45 0 0 0.99023438,17 16.009488,16.010701 45 0 0 14.998047,32.869141 V 32 H 15 V 21 H 14 V 31.664062 A 15,15 45 0 1 2,17 15,15 45 0 1 12.998047,2.5449219 Z"
|
||||
transform="matrix(0.70668771,-0.70663419,0.70668771,0.70663419,-8.0273788,304.53335)"
|
||||
id="path817" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 34 34"
|
||||
height="34"
|
||||
width="34">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path
|
||||
id="path822"
|
||||
d="M 14 1 L 14 13 L 15 13 L 15 1 L 14 1 z M 19 1 L 19 13 L 20 13 L 20 1 L 19 1 z M 9 3.1855469 C 4.1702837 5.9748853 1.0026451 11.162345 1 17 C 1 25.836556 8.163444 33 17 33 C 25.836556 33 33 25.836556 33 17 C 32.99593 11.163669 29.828666 5.9780498 25 3.1894531 L 25 4.3496094 C 29.280842 7.0494632 31.988612 11.788234 32 17 C 32 25.284271 25.284271 32 17 32 C 8.7157288 32 2 25.284271 2 17 C 2.0120649 11.788824 4.7195457 7.0510246 9 4.3515625 L 9 3.1855469 z "
|
||||
style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 34 34"
|
||||
height="34"
|
||||
width="34">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path
|
||||
style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill"
|
||||
d="M 17,1 C 8.163444,1 1,8.163444 1,17 1,25.836556 8.163444,33 17,33 25.836556,33 33,25.836556 33,17 33,8.163444 25.836556,1 17,1 Z m 0,1 C 25.284271,2 32,8.7157288 32,17 32,25.284271 25.284271,32 17,32 8.7157288,32 2,25.284271 2,17 2,8.7157288 8.7157288,2 17,2 Z m -4,9 v 12 h 1 V 11 Z m 7,0 v 12 h 1 V 11 Z"
|
||||
id="path831" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="28"
|
||||
width="28"
|
||||
id="svg12"
|
||||
xml:space="preserve"
|
||||
viewBox="0 0 28 28"
|
||||
y="0px"
|
||||
x="0px"
|
||||
version="1.1"
|
||||
sodipodi:docname="user.svgz"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1440"
|
||||
inkscape:window-height="843"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="3.2721019"
|
||||
inkscape:cx="11.317087"
|
||||
inkscape:cy="22.626613"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="22"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg12" /><metadata
|
||||
id="metadata18"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs16" /><g
|
||||
id="g6"
|
||||
transform="scale(0.06862745)"><g
|
||||
id="g4"><path
|
||||
id="path2"
|
||||
d="M 204,204 C 260.1,204 306,158.1 306,102 306,45.9 260.1,0 204,0 147.9,0 102,45.9 102,102 c 0,56.1 45.9,102 102,102 z m 0,51 C 135.15,255 0,288.15 0,357 v 51 H 408 V 357 C 408,288.15 272.85,255 204,255 Z"
|
||||
inkscape:connector-curvature="0" /></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,70 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
Column {
|
||||
id: clock
|
||||
|
||||
width: parent.width / 2
|
||||
spacing: 0
|
||||
|
||||
Label {
|
||||
id:headerTextLabel
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
font.pointSize: root.font.pointSize * 4
|
||||
color: config.HeaderTextColor
|
||||
renderType: Text.NativeRendering
|
||||
text: config.HeaderText
|
||||
}
|
||||
|
||||
Label {
|
||||
id: timeLabel
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
font.pointSize: root.font.pointSize * 9
|
||||
font.bold: true
|
||||
color: config.TimeTextColor
|
||||
renderType: Text.QtRendering
|
||||
|
||||
function updateTime() {
|
||||
text = new Date().toLocaleTimeString(Qt.locale(config.Locale), config.HourFormat == "long" ? Locale.LongFormat : config.HourFormat !== "" ? config.HourFormat : Locale.ShortFormat)
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
id: dateLabel
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
color: config.DateTextColor
|
||||
font.pointSize: root.font.pointSize * 3
|
||||
font.bold: true
|
||||
renderType: Text.QtRendering
|
||||
|
||||
function updateTime() {
|
||||
text = new Date().toLocaleDateString(Qt.locale(config.Locale), config.DateFormat == "short" ? Locale.ShortFormat : config.DateFormat !== "" ? config.DateFormat : Locale.LongFormat)
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 1000
|
||||
repeat: true
|
||||
running: true
|
||||
onTriggered: {
|
||||
dateLabel.updateTime()
|
||||
timeLabel.updateTime()
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
dateLabel.updateTime()
|
||||
timeLabel.updateTime()
|
||||
}
|
||||
}
|
||||
@@ -1,526 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
Column {
|
||||
id: inputContainer
|
||||
|
||||
Layout.fillWidth: true
|
||||
|
||||
property ComboBox exposeSession: sessionSelect.exposeSession
|
||||
property bool failed
|
||||
|
||||
Item {
|
||||
id: errorMessageField
|
||||
|
||||
// change also in selectSession
|
||||
height: root.font.pointSize * 2
|
||||
width: parent.width / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Label {
|
||||
id: errorMessage
|
||||
|
||||
width: parent.width
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
text: failed ? config.TranslateLoginFailedWarning || textConstants.loginFailed + "!" : keyboard.capsLock ? config.TranslateCapslockWarning || textConstants.capslockWarning : null
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
font.italic: true
|
||||
color: config.WarningColor
|
||||
opacity: 0
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "fail"
|
||||
when: failed
|
||||
PropertyChanges {
|
||||
target: errorMessage
|
||||
opacity: 1
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "capslock"
|
||||
when: keyboard.capsLock
|
||||
PropertyChanges {
|
||||
target: errorMessage
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "opacity"
|
||||
duration: 100
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: usernameField
|
||||
|
||||
height: root.font.pointSize * 4.5
|
||||
width: parent.width / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
ComboBox {
|
||||
id: selectUser
|
||||
|
||||
width: parent.height
|
||||
height: parent.height
|
||||
anchors.left: parent.left
|
||||
z: 2
|
||||
|
||||
model: userModel
|
||||
currentIndex: model.lastIndex
|
||||
textRole: "name"
|
||||
hoverEnabled: true
|
||||
onActivated: {
|
||||
username.text = currentText
|
||||
}
|
||||
|
||||
property var popkey: config.RightToLeftLayout == "true" ? Qt.Key_Right : Qt.Key_Left
|
||||
Keys.onPressed: function(event) {
|
||||
if (event.key == Qt.Key_Down && !popup.opened)
|
||||
username.forceActiveFocus();
|
||||
if ((event.key == Qt.Key_Up || event.key == popkey) && !popup.opened)
|
||||
popup.open();
|
||||
}
|
||||
KeyNavigation.down: username
|
||||
KeyNavigation.right: username
|
||||
|
||||
delegate: ItemDelegate {
|
||||
// minus padding
|
||||
width: popupHandler.width - 20
|
||||
anchors.horizontalCenter: popupHandler.horizontalCenter
|
||||
|
||||
contentItem: Text {
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
text: model.name
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
font.capitalization: Font.AllLowercase
|
||||
font.family: root.font.family
|
||||
color: config.DropdownTextColor
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: selectUser.highlightedIndex === index ? config.DropdownSelectedBackgroundColor : "transparent"
|
||||
}
|
||||
}
|
||||
|
||||
indicator: Button {
|
||||
id: usernameIcon
|
||||
|
||||
width: selectUser.height * 1
|
||||
height: parent.height
|
||||
anchors.left: parent.left
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.leftMargin: selectUser.height * 0
|
||||
|
||||
icon.height: parent.height * 0.25
|
||||
icon.width: parent.height * 0.25
|
||||
enabled: false
|
||||
icon.color: config.UserIconColor
|
||||
icon.source: Qt.resolvedUrl("../Assets/User.svg")
|
||||
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
}
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
}
|
||||
|
||||
popup: Popup {
|
||||
id: popupHandler
|
||||
|
||||
implicitHeight: contentItem.implicitHeight
|
||||
width: usernameField.width
|
||||
y: parent.height - username.height / 3
|
||||
x: config.RightToLeftLayout == "true" ? -loginButton.width + selectUser.width : 0
|
||||
rightMargin: config.RightToLeftLayout == "true" ? root.padding + usernameField.width / 2 : undefined
|
||||
padding: 10
|
||||
|
||||
contentItem: ListView {
|
||||
implicitHeight: contentHeight + 20
|
||||
|
||||
clip: true
|
||||
model: selectUser.popup.visible ? selectUser.delegateModel : null
|
||||
currentIndex: selectUser.highlightedIndex
|
||||
ScrollIndicator.vertical: ScrollIndicator { }
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
radius: config.RoundCorners / 2
|
||||
color: config.DropdownBackgroundColor
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
enter: Transition {
|
||||
NumberAnimation { property: "opacity"; from: 0; to: 1 }
|
||||
}
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: selectUser.down
|
||||
PropertyChanges {
|
||||
target: usernameIcon
|
||||
icon.color: Qt.lighter(config.HoverUserIconColor, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hovered"
|
||||
when: selectUser.hovered
|
||||
PropertyChanges {
|
||||
target: usernameIcon
|
||||
icon.color: Qt.lighter(config.HoverUserIconColor, 1.2)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "focused"
|
||||
when: selectUser.activeFocus
|
||||
PropertyChanges {
|
||||
target: usernameIcon
|
||||
icon.color: config.HoverUserIconColor
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "color, border.color, icon.color"
|
||||
duration: 150
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: username
|
||||
|
||||
anchors.centerIn: parent
|
||||
height: root.font.pointSize * 3
|
||||
width: parent.width
|
||||
horizontalAlignment: TextInput.AlignHCenter
|
||||
z: 1
|
||||
|
||||
text: config.ForceLastUser == "true" ? selectUser.currentText : null
|
||||
color: config.LoginFieldTextColor
|
||||
font.bold: true
|
||||
font.capitalization: config.AllowUppercaseLettersInUsernames == "false" ? Font.AllLowercase : Font.MixedCase
|
||||
placeholderText: config.TranslatePlaceholderUsername || textConstants.userName
|
||||
placeholderTextColor: config.PlaceholderTextColor
|
||||
selectByMouse: true
|
||||
renderType: Text.QtRendering
|
||||
|
||||
onFocusChanged:{
|
||||
if(focus)
|
||||
selectAll()
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: config.LoginFieldBackgroundColor
|
||||
opacity: 0.6
|
||||
border.color: "transparent"
|
||||
border.width: parent.activeFocus ? 2 : 1
|
||||
radius: config.RoundCorners || 0
|
||||
}
|
||||
|
||||
onAccepted: config.AllowUppercaseLettersInUsernames == "false" ? sddm.login(username.text.toLowerCase(), password.text, sessionSelect.selectedSession) : sddm.login(username.text, password.text, sessionSelect.selectedSession)
|
||||
KeyNavigation.down: passwordIcon
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "focused"
|
||||
when: username.activeFocus
|
||||
PropertyChanges {
|
||||
target: username.background
|
||||
border.color: config.HighlightBorderColor
|
||||
}
|
||||
PropertyChanges {
|
||||
target: username
|
||||
color: Qt.lighter(config.LoginFieldTextColor, 1.15)
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: passwordField
|
||||
|
||||
height: root.font.pointSize * 4.5
|
||||
width: parent.width / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Button {
|
||||
id: passwordIcon
|
||||
|
||||
height: parent.height
|
||||
width: selectUser.height * 1
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: selectUser.height * 0
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
z: 2
|
||||
|
||||
icon.height: parent.height * 0.25
|
||||
icon.width: parent.height * 0.25
|
||||
icon.color: config.PasswordIconColor
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password2.svg")
|
||||
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "visiblePasswordFocused"
|
||||
when: passwordIcon.checked && passwordIcon.activeFocus
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password.svg")
|
||||
icon.color: config.HoverPasswordIconColor
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "visiblePasswordHovered"
|
||||
when: passwordIcon.checked && passwordIcon.hovered
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password.svg")
|
||||
icon.color: config.HoverPasswordIconColor
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "visiblePassword"
|
||||
when: passwordIcon.checked
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password.svg")
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hiddenPasswordFocused"
|
||||
when: passwordIcon.enabled && passwordIcon.activeFocus
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password2.svg")
|
||||
icon.color: config.HoverPasswordIconColor
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hiddenPasswordHovered"
|
||||
when: passwordIcon.hovered
|
||||
PropertyChanges {
|
||||
target: passwordIcon
|
||||
icon.source: Qt.resolvedUrl("../Assets/Password2.svg")
|
||||
icon.color: config.HoverPasswordIconColor
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
onClicked: toggle()
|
||||
Keys.onReturnPressed: toggle()
|
||||
Keys.onEnterPressed: toggle()
|
||||
KeyNavigation.down: password
|
||||
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: password
|
||||
|
||||
height: root.font.pointSize * 3
|
||||
width: parent.width
|
||||
anchors.centerIn: parent
|
||||
horizontalAlignment: TextInput.AlignHCenter
|
||||
|
||||
font.bold: true
|
||||
color: config.PasswordFieldTextColor
|
||||
focus: config.PasswordFocus == "true" ? true : false
|
||||
echoMode: passwordIcon.checked ? TextInput.Normal : TextInput.Password
|
||||
placeholderText: config.TranslatePlaceholderPassword || textConstants.password
|
||||
placeholderTextColor: config.PlaceholderTextColor
|
||||
passwordCharacter: "•"
|
||||
passwordMaskDelay: config.HideCompletePassword == "true" ? undefined : 1000
|
||||
renderType: Text.QtRendering
|
||||
selectByMouse: true
|
||||
|
||||
background: Rectangle {
|
||||
color: config.PasswordFieldBackgroundColor
|
||||
opacity: 0.6
|
||||
border.color: "transparent"
|
||||
border.width: parent.activeFocus ? 2 : 1
|
||||
radius: config.RoundCorners || 0
|
||||
}
|
||||
onAccepted: config.AllowUppercaseLettersInUsernames == "false" ? sddm.login(username.text.toLowerCase(), password.text, sessionSelect.selectedSession) : sddm.login(username.text, password.text, sessionSelect.selectedSession)
|
||||
KeyNavigation.down: loginButton
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "focused"
|
||||
when: password.activeFocus
|
||||
PropertyChanges {
|
||||
target: password.background
|
||||
border.color: config.HighlightBorderColor
|
||||
}
|
||||
PropertyChanges {
|
||||
target: password
|
||||
color: Qt.lighter(config.LoginFieldTextColor, 1.15)
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "color, border.color"
|
||||
duration: 150
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Item {
|
||||
id: login
|
||||
|
||||
// important
|
||||
// try 4 or 9 ...
|
||||
height: root.font.pointSize * 9
|
||||
width: parent.width / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
visible: config.HideLoginButton == "true" ? false : true
|
||||
|
||||
Button {
|
||||
id: loginButton
|
||||
|
||||
height: root.font.pointSize * 3
|
||||
implicitWidth: parent.width
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
text: config.TranslateLogin || textConstants.login
|
||||
enabled: config.AllowEmptyPassword == "true" || username.text != "" && password.text != "" ? true : false
|
||||
hoverEnabled: true
|
||||
|
||||
contentItem: Text {
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
font.bold: true
|
||||
font.pointSize: root.font.pointSize
|
||||
font.family: root.font.family
|
||||
color: config.LoginButtonTextColor
|
||||
text: parent.text
|
||||
opacity: 0.0
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
id: buttonBackground
|
||||
|
||||
color: config.LoginButtonBackgroundColor
|
||||
opacity: 0.0
|
||||
radius: config.RoundCorners || 0
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: loginButton.down
|
||||
PropertyChanges {
|
||||
target: buttonBackground
|
||||
color: Qt.darker(config.LoginButtonBackgroundColor, 1.1)
|
||||
opacity: 0.0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: loginButton.contentItem
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hovered"
|
||||
when: loginButton.hovered
|
||||
PropertyChanges {
|
||||
target: buttonBackground
|
||||
color: Qt.lighter(config.LoginButtonBackgroundColor, 1.15)
|
||||
opacity: 0.0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: loginButton.contentItem
|
||||
opacity: 0.0
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "focused"
|
||||
when: loginButton.activeFocus
|
||||
PropertyChanges {
|
||||
target: buttonBackground
|
||||
color: Qt.lighter(config.LoginButtonBackgroundColor, 1.2)
|
||||
opacity: 0.0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: loginButton.contentItem
|
||||
opacity: 0.0
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "enabled"
|
||||
when: loginButton.enabled
|
||||
PropertyChanges {
|
||||
target: buttonBackground;
|
||||
color: config.LoginButtonBackgroundColor;
|
||||
opacity: 0.0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: loginButton.contentItem;
|
||||
opacity: 0.0
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "opacity, color";
|
||||
duration: 300
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
onClicked: config.AllowUppercaseLettersInUsernames == "false" ? sddm.login(username.text.toLowerCase(), password.text, sessionSelect.selectedSession) : sddm.login(username.text, password.text, sessionSelect.selectedSession)
|
||||
Keys.onReturnPressed: clicked()
|
||||
Keys.onEnterPressed: clicked()
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: sddm
|
||||
function onLoginSucceeded() {}
|
||||
function onLoginFailed() {
|
||||
failed = true
|
||||
resetError.running ? resetError.stop() && resetError.start() : resetError.start()
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: resetError
|
||||
interval: 2000
|
||||
onTriggered: failed = false
|
||||
running: false
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import SddmComponents 2.0 as SDDM
|
||||
|
||||
ColumnLayout {
|
||||
id: formContainer
|
||||
SDDM.TextConstants { id: textConstants }
|
||||
|
||||
property int p: config.ScreenPadding == "" ? 0 : config.ScreenPadding
|
||||
property string a: config.FormPosition
|
||||
|
||||
Clock {
|
||||
id: clock
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
|
||||
// important
|
||||
Layout.preferredHeight: root.height / 2
|
||||
Layout.leftMargin: p != "0" ? a == "left" ? -p : a == "right" ? p : 0 : 0
|
||||
}
|
||||
|
||||
Input {
|
||||
id: input
|
||||
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Layout.preferredHeight: root.height / 20
|
||||
Layout.leftMargin: p != "0" ? a == "left" ? -p : a == "right" ? p : 0 : 0
|
||||
Layout.topMargin: 0
|
||||
}
|
||||
|
||||
SystemButtons {
|
||||
id: systemButtons
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
|
||||
Layout.preferredHeight: root.height / 5
|
||||
Layout.maximumHeight: root.height / 5
|
||||
Layout.leftMargin: p != "0" ? a == "left" ? -p : a == "right" ? p : 0 : 0
|
||||
|
||||
exposedSession: input.exposeSession
|
||||
}
|
||||
|
||||
SessionButton {
|
||||
id: sessionSelect
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
|
||||
Layout.preferredHeight: root.height / 54
|
||||
Layout.maximumHeight: root.height / 54
|
||||
Layout.leftMargin: p != "0" ? a == "left" ? -p : a == "right" ? p : 0 : 0
|
||||
}
|
||||
}
|
||||
@@ -1,149 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
Item {
|
||||
id: sessionButton
|
||||
|
||||
height: root.font.pointSize
|
||||
width: parent.width / 2
|
||||
|
||||
property var selectedSession: selectSession.currentIndex
|
||||
property string textConstantSession
|
||||
property int loginButtonWidth
|
||||
property ComboBox exposeSession: selectSession
|
||||
|
||||
ComboBox {
|
||||
id: selectSession
|
||||
|
||||
// important
|
||||
// change also in errorMessage
|
||||
height: root.font.pointSize * 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
hoverEnabled: true
|
||||
model: sessionModel
|
||||
currentIndex: model.lastIndex
|
||||
textRole: "name"
|
||||
|
||||
Keys.onPressed: function(event) {
|
||||
if ((event.key == Qt.Key_Left || event.key == Qt.Key_Right) && !popup.opened) {
|
||||
popup.open();
|
||||
}
|
||||
}
|
||||
|
||||
delegate: ItemDelegate {
|
||||
// minus padding
|
||||
width: popupHandler.width - 20
|
||||
anchors.horizontalCenter: popupHandler.horizontalCenter
|
||||
|
||||
contentItem: Text {
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
text: model.name
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
font.family: root.font.family
|
||||
color: config.DropdownTextColor
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: selectSession.highlightedIndex === index ? config.DropdownSelectedBackgroundColor : "transparent"
|
||||
}
|
||||
}
|
||||
|
||||
indicator {
|
||||
visible: false
|
||||
}
|
||||
|
||||
contentItem: Text {
|
||||
id: displayedItem
|
||||
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
text: (config.TranslateSessionSelection || "Session") + " (" + selectSession.currentText + ")"
|
||||
color: config.SessionButtonTextColor
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
font.family: root.font.family
|
||||
|
||||
Keys.onReleased: parent.popup.open()
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
height: parent.visualFocus ? 2 : 0
|
||||
width: displayedItem.implicitWidth
|
||||
|
||||
color: "transparent"
|
||||
}
|
||||
|
||||
popup: Popup {
|
||||
id: popupHandler
|
||||
|
||||
implicitHeight: contentItem.implicitHeight
|
||||
width: sessionButton.width
|
||||
y: parent.height - 1
|
||||
x: -popupHandler.width/2 + displayedItem.width/2
|
||||
padding: 10
|
||||
|
||||
contentItem: ListView {
|
||||
implicitHeight: contentHeight + 20
|
||||
|
||||
clip: true
|
||||
model: selectSession.popup.visible ? selectSession.delegateModel : null
|
||||
currentIndex: selectSession.highlightedIndex
|
||||
ScrollIndicator.vertical: ScrollIndicator { }
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
radius: config.RoundCorners / 2
|
||||
color: config.DropdownBackgroundColor
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
enter: Transition {
|
||||
NumberAnimation { property: "opacity"; from: 0; to: 1 }
|
||||
}
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: selectSession.down
|
||||
PropertyChanges {
|
||||
target: displayedItem
|
||||
color: Qt.darker(config.HoverSessionButtonTextColor, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hovered"
|
||||
when: selectSession.hovered
|
||||
PropertyChanges {
|
||||
target: displayedItem
|
||||
color: Qt.lighter(config.HoverSessionButtonTextColor, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "focused"
|
||||
when: selectSession.visualFocus
|
||||
PropertyChanges {
|
||||
target: displayedItem
|
||||
color: config.HoverSessionButtonTextColor
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "color"
|
||||
duration: 150
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
RowLayout {
|
||||
|
||||
spacing: root.font.pointSize
|
||||
|
||||
property var shutdown: ["Shutdown", config.TranslateShutdown || textConstants.shutdown, sddm.canPowerOff]
|
||||
property var reboot: ["Reboot", config.TranslateReboot || textConstants.reboot, sddm.canReboot]
|
||||
property var suspend: ["Suspend", config.TranslateSuspend || textConstants.suspend, sddm.canSuspend]
|
||||
property var hibernate: ["Hibernate", config.TranslateHibernate || textConstants.hibernate, sddm.canHibernate]
|
||||
|
||||
property ComboBox exposedSession
|
||||
|
||||
Repeater {
|
||||
id: systemButtons
|
||||
|
||||
model: [shutdown, reboot, suspend, hibernate]
|
||||
|
||||
RoundButton {
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
||||
Layout.topMargin: root.font.pointSize * 6.5
|
||||
|
||||
text: modelData[1]
|
||||
font.pointSize: root.font.pointSize * 0.8
|
||||
icon.source: modelData ? Qt.resolvedUrl("../Assets/" + modelData[0] + ".svg") : ""
|
||||
icon.height: 2 * Math.round((root.font.pointSize * 3) / 2)
|
||||
icon.width: 2 * Math.round((root.font.pointSize * 3) / 2)
|
||||
icon.color: config.SystemButtonsIconsColor
|
||||
palette.buttonText: config.SystemButtonsIconsColor
|
||||
display: AbstractButton.TextUnderIcon
|
||||
visible: config.HideSystemButtons != "true" && (config.BypassSystemButtonsChecks == "true" ? 1 : modelData[2])
|
||||
hoverEnabled: true
|
||||
|
||||
background: Rectangle {
|
||||
height: 2
|
||||
width: parent.width
|
||||
|
||||
color: "transparent"
|
||||
}
|
||||
|
||||
Keys.onReturnPressed: clicked()
|
||||
onClicked: {
|
||||
parent.forceActiveFocus()
|
||||
index == 0 ? sddm.powerOff() : index == 1 ? sddm.reboot() : index == 2 ? sddm.suspend() : sddm.hibernate()
|
||||
}
|
||||
KeyNavigation.left: index > 0 ? parent.children[index-1] : null
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: parent.children[index].down
|
||||
PropertyChanges {
|
||||
target: parent.children[index]
|
||||
icon.color: root.palette.buttonText
|
||||
palette.buttonText: Qt.darker(root.palette.buttonText, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hovered"
|
||||
when: parent.children[index].hovered
|
||||
PropertyChanges {
|
||||
target: parent.children[index]
|
||||
icon.color: root.palette.buttonText
|
||||
palette.buttonText: Qt.lighter(root.palette.buttonText, 1.1)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "focused"
|
||||
when: parent.children[index].activeFocus
|
||||
PropertyChanges {
|
||||
target: parent.children[index]
|
||||
icon.color: root.palette.buttonText
|
||||
palette.buttonText: root.palette.buttonText
|
||||
}
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation {
|
||||
properties: "palette.buttonText, border.color"
|
||||
duration: 150
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,200 +0,0 @@
|
||||
// Config created by Keyitdev https://github.com/Keyitdev/sddm-astronaut-theme
|
||||
// Copyright (C) 2022-2025 Keyitdev
|
||||
// Based on https://github.com/MarianArlt/sddm-sugar-dark
|
||||
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Effects
|
||||
import QtMultimedia
|
||||
|
||||
import "Components"
|
||||
|
||||
Pane {
|
||||
id: root
|
||||
|
||||
height: config.ScreenHeight || Screen.height
|
||||
width: config.ScreenWidth || Screen.ScreenWidth
|
||||
padding: config.ScreenPadding
|
||||
|
||||
LayoutMirroring.enabled: config.RightToLeftLayout == "true" ? true : Qt.application.layoutDirection === Qt.RightToLeft
|
||||
LayoutMirroring.childrenInherit: true
|
||||
|
||||
palette.window: config.BackgroundColor
|
||||
palette.highlight: config.HighlightBackgroundColor
|
||||
palette.highlightedText: config.HighlightTextColor
|
||||
palette.buttonText: config.HoverSystemButtonsIconsColor
|
||||
|
||||
font.family: config.Font
|
||||
font.pointSize: config.FontSize !== "" ? config.FontSize : parseInt(height / 80) || 13
|
||||
|
||||
focus: true
|
||||
|
||||
property bool leftleft: config.HaveFormBackground == "true" &&
|
||||
config.PartialBlur == "false" &&
|
||||
config.FormPosition == "left" &&
|
||||
config.BackgroundHorizontalAlignment == "left"
|
||||
|
||||
property bool leftcenter: config.HaveFormBackground == "true" &&
|
||||
config.PartialBlur == "false" &&
|
||||
config.FormPosition == "left" &&
|
||||
config.BackgroundHorizontalAlignment == "center"
|
||||
|
||||
property bool rightright: config.HaveFormBackground == "true" &&
|
||||
config.PartialBlur == "false" &&
|
||||
config.FormPosition == "right" &&
|
||||
config.BackgroundHorizontalAlignment == "right"
|
||||
|
||||
property bool rightcenter: config.HaveFormBackground == "true" &&
|
||||
config.PartialBlur == "false" &&
|
||||
config.FormPosition == "right" &&
|
||||
config.BackgroundHorizontalAlignment == "center"
|
||||
|
||||
Item {
|
||||
id: sizeHelper
|
||||
|
||||
height: parent.height
|
||||
width: parent.width
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
id: tintLayer
|
||||
|
||||
height: parent.height
|
||||
width: parent.width
|
||||
anchors.fill: parent
|
||||
z: 1
|
||||
color: config.DimBackgroundColor
|
||||
opacity: config.DimBackground
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: formBackground
|
||||
|
||||
anchors.fill: form
|
||||
anchors.centerIn: form
|
||||
z: 1
|
||||
|
||||
color: config.FormBackgroundColor
|
||||
visible: config.HaveFormBackground == "true" ? true : false
|
||||
opacity: config.PartialBlur == "true" ? 0.3 : 1
|
||||
}
|
||||
|
||||
LoginForm {
|
||||
id: form
|
||||
|
||||
height: parent.height
|
||||
width: parent.width / 2.5
|
||||
anchors.left: config.FormPosition == "left" ? parent.left : undefined
|
||||
anchors.horizontalCenter: config.FormPosition == "center" ? parent.horizontalCenter : undefined
|
||||
anchors.right: config.FormPosition == "right" ? parent.right : undefined
|
||||
z: 1
|
||||
}
|
||||
|
||||
Image {
|
||||
id: backgroundPlaceholderImage
|
||||
|
||||
z: 10
|
||||
source: config.BackgroundPlaceholder
|
||||
visible: false
|
||||
}
|
||||
|
||||
AnimatedImage {
|
||||
id: backgroundImage
|
||||
|
||||
MediaPlayer {
|
||||
id: player
|
||||
|
||||
videoOutput: videoOutput
|
||||
autoPlay: true
|
||||
playbackRate: config.BackgroundSpeed == "" ? 1.0 : config.BackgroundSpeed
|
||||
loops: -1
|
||||
onPlayingChanged: {
|
||||
console.log("Video started.")
|
||||
backgroundPlaceholderImage.visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
VideoOutput {
|
||||
id: videoOutput
|
||||
|
||||
fillMode: config.CropBackground == "true" ? VideoOutput.PreserveAspectCrop : VideoOutput.PreserveAspectFit
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
height: parent.height
|
||||
width: config.HaveFormBackground == "true" && config.FormPosition != "center" && config.PartialBlur != "true" ? parent.width - formBackground.width : parent.width
|
||||
anchors.left: leftleft || leftcenter ? formBackground.right : undefined
|
||||
anchors.right: rightright || rightcenter ? formBackground.left : undefined
|
||||
|
||||
horizontalAlignment: config.BackgroundHorizontalAlignment == "left" ?
|
||||
Image.AlignLeft :
|
||||
config.BackgroundHorizontalAlignment == "right" ?
|
||||
Image.AlignRight : Image.AlignHCenter
|
||||
|
||||
verticalAlignment: config.BackgroundVerticalAlignment == "top" ?
|
||||
Image.AlignTop :
|
||||
config.BackgroundVerticalAlignment == "bottom" ?
|
||||
Image.AlignBottom : Image.AlignVCenter
|
||||
|
||||
speed: config.BackgroundSpeed == "" ? 1.0 : config.BackgroundSpeed
|
||||
paused: config.PauseBackground == "true" ? 1 : 0
|
||||
fillMode: config.CropBackground == "true" ? Image.PreserveAspectCrop : Image.PreserveAspectFit
|
||||
asynchronous: true
|
||||
cache: true
|
||||
clip: true
|
||||
mipmap: true
|
||||
|
||||
Component.onCompleted:{
|
||||
var fileType = config.Background.substring(config.Background.lastIndexOf(".") + 1)
|
||||
const videoFileTypes = ["avi", "mp4", "mov", "mkv", "m4v", "webm"];
|
||||
if (videoFileTypes.includes(fileType)) {
|
||||
backgroundPlaceholderImage.visible = true;
|
||||
player.source = Qt.resolvedUrl(config.Background)
|
||||
player.play();
|
||||
}
|
||||
else{
|
||||
backgroundImage.source = config.background || config.Background
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: backgroundImage
|
||||
onClicked: parent.forceActiveFocus()
|
||||
}
|
||||
|
||||
ShaderEffectSource {
|
||||
id: blurMask
|
||||
|
||||
height: parent.height
|
||||
width: form.width
|
||||
anchors.centerIn: form
|
||||
|
||||
sourceItem: backgroundImage
|
||||
sourceRect: Qt.rect(x,y,width,height)
|
||||
visible: config.FullBlur == "true" || config.PartialBlur == "true" ? true : false
|
||||
}
|
||||
|
||||
MultiEffect {
|
||||
id: blur
|
||||
|
||||
height: parent.height
|
||||
|
||||
// width: config.FullBlur == "true" ? parent.width : form.width
|
||||
// anchors.centerIn: config.FullBlur == "true" ? parent : form
|
||||
|
||||
// This solves problem when FullBlur and HaveFormBackground is set to true but PartialBlur is false and FormPosition isn't center.
|
||||
width: (config.FullBlur == "true" && config.PartialBlur == "false" && config.FormPosition != "center" ) ? parent.width - formBackground.width : config.FullBlur == "true" ? parent.width : form.width
|
||||
anchors.centerIn: config.FullBlur == "true" ? backgroundImage : form
|
||||
|
||||
source: config.FullBlur == "true" ? backgroundImage : blurMask
|
||||
blurEnabled: true
|
||||
autoPaddingEnabled: false
|
||||
blur: config.Blur == "" ? 2.0 : config.Blur
|
||||
blurMax: config.BlurMax == "" ? 48 : config.BlurMax
|
||||
visible: config.FullBlur == "true" || config.PartialBlur == "true" ? true : false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
# sddm-astronaut-theme
|
||||
|
||||

|
||||

|
||||
[](https://ko-fi.com/keyitdev)
|
||||
|
||||
[sddm-astronaut-theme](https://github.com/Keyitdev/sddm-astronaut-theme) is a series of themes for the [SDDM](https://github.com/sddm/sddm/) display manager made by **[Keyitdev](https://github.com/Keyitdev)**.
|
||||
|
||||
It's written using the latest version of Qt, which is **Qt6**. Its key features include **virtual keyboard support** and an **installation script**. This theme also support **animated wallpapers**. You can easily change its appearance by choosing another of the ten pre-made themes or creating your own. Each of these themes was created by modifying just one file - **[config](./Themes/astronaut.conf)**.
|
||||
|
||||
All themes were created for 1080p. However, they should work well in other resolutions.
|
||||
|
||||
## Preview of all themes
|
||||
|
||||

|
||||
|
||||
## Preview of animated themes
|
||||
|
||||
https://github.com/user-attachments/assets/2cfc947e-4621-4e98-b5f3-07d5e224b80c
|
||||
|
||||
<h2><a href="https://youtu.be/4tQ56xh7wBc" target="_blank">Watch more on Youtube!</a></h2>
|
||||
<details>
|
||||
<summary><h2>Detailed previews</h2></summary>
|
||||
|
||||
**Astronaut**|**Black hole**
|
||||
|:--:|:--:|
|
||||
|
|
||||
**Japanese aesthetic**|**Pixel sakura static**
|
||||
|
|
||||
**Purple leaves**|**Cyberpunk**
|
||||
|
|
||||
**Post-apocalyptic hacker**|**xxx**
|
||||
|
|
||||
|
||||
**Hyprland Kath**
|
||||
|
||||
https://github.com/user-attachments/assets/1d926e76-44f7-4d99-ac6d-d1abcd7ed688
|
||||
|
||||
**Pixel sakura**
|
||||
|
||||
https://github.com/user-attachments/assets/ea004765-7e84-4a0d-90cd-aaac97679f62
|
||||
|
||||
**Jake the dog**
|
||||
|
||||
https://github.com/user-attachments/assets/181d48c2-f152-45f5-b568-21145be180f6
|
||||
|
||||
</details>
|
||||
|
||||
## Installation
|
||||
|
||||
### Automatic Installation
|
||||
|
||||
```sh
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/keyitdev/sddm-astronaut-theme/master/setup.sh)"
|
||||
```
|
||||
> Works on distributions using pacman, xbps-install, dnf, zypper.
|
||||
> Remember to always read the scripts you run from the internet.
|
||||
|
||||
### Manual Installation
|
||||
|
||||
1. Install **dependencies**
|
||||
|
||||
[`sddm >= 0.21.0`](https://github.com/sddm/sddm), [`qt6 >= 6.8`](https://doc.qt.io/qt-6/index.html), [`qt6-svg >= 6.8`](https://doc.qt.io/qt-6/qtsvg-index.html), [`qt6-virtualkeyboard >= 6.8`](https://doc.qt.io/qt-6/qtvirtualkeyboard-index.html), [`qt6-multimedia >= 6.8`](https://doc.qt.io/qt-6/qtmultimedia-index.html)
|
||||
|
||||
You may also want to install additional video codecs like h.264.
|
||||
|
||||
```sh
|
||||
sddm qt6-svg qt6-virtualkeyboard qt6-multimedia-ffmpeg # Arch
|
||||
sddm qt6-svg qt6-virtualkeyboard qt6-multimedia # Void
|
||||
sddm qt6-qtsvg qt6-qtvirtualkeyboard qt6-qtmultimedia # Fedora
|
||||
sddm-qt6 libQt6Svg6 qt6-virtualkeyboard qt6-virtualkeyboard-imports qt6-multimedia qt6-multimedia-imports # OpenSUSE
|
||||
```
|
||||
|
||||
2. Clone this repository
|
||||
```sh
|
||||
sudo git clone -b master --depth 1 https://github.com/keyitdev/sddm-astronaut-theme.git /usr/share/sddm/themes/sddm-astronaut-theme
|
||||
```
|
||||
3. Copy fonts to `/usr/share/fonts/`
|
||||
```sh
|
||||
sudo cp -r /usr/share/sddm/themes/sddm-astronaut-theme/Fonts/* /usr/share/fonts/
|
||||
```
|
||||
4. Edit `/etc/sddm.conf`
|
||||
```sh
|
||||
echo "[Theme]
|
||||
Current=sddm-astronaut-theme" | sudo tee /etc/sddm.conf
|
||||
```
|
||||
5. Edit `/etc/sddm.conf.d/virtualkbd.conf`
|
||||
```sh
|
||||
echo "[General]
|
||||
InputMethod=qtvirtualkeyboard" | sudo tee /etc/sddm.conf.d/virtualkbd.conf
|
||||
```
|
||||
|
||||
## Selecting a theme
|
||||
|
||||
You can select theme by editing [metadata](./metadata.desktop) (`/usr/share/sddm/themes/sddm-astronaut-theme/metadata.desktop`).
|
||||
|
||||
Just edit this line:
|
||||
```
|
||||
ConfigFile=Themes/astronaut.conf
|
||||
```
|
||||
All available configs are in [Themes](./Themes/) directory.
|
||||
|
||||
## Previewing a theme
|
||||
|
||||
You can preview the set theme without logging out by runnning:
|
||||
```sh
|
||||
sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/sddm-astronaut-theme/
|
||||
```
|
||||
> Note that depending on the system configuration, the preview may differ slightly from the actual login screen.
|
||||
|
||||
## Sources
|
||||
|
||||
Initially the theme was independed fork of [MarianArlt's theme](https://github.com/MarianArlt/sddm-sugar-dark) but now the project has come a long way and started to significantly deviate from the original.
|
||||
Many of the wallpapers and fonts used in this project are very popular and copied from one user to another, so I don't know who the original creator is.
|
||||
I also redesigned many of them, but here are links to some of the orginal artists who created these wonderful wallpapers:
|
||||
|
||||
- Astronaut: [wallpaper](https://wallhaven.cc/w/e76pew), [font](https://fonts.google.com/specimen/Open+Sans/about)
|
||||
- Black hole: [wallpaper](https://images2.alphacoders.com/114/1141632.jpg), [font](https://www.1001fonts.com/espacion-font.html)
|
||||
- Japanese aesthetic: [wallpaper](https://imgur.com/a/pua0dYx) by [gharly](https://www.artstation.com/gharly), [font](https://www.1001fonts.com/electroharmonix-font.html)
|
||||
- Purple leaves: [wallpaper](https://wallha.com/wallpaper/artwork-abstract-leaves-purple-texture-pattern-1414432), [font](https://fonts.google.com/specimen/Open+Sans/about)
|
||||
- Cyberpunk: [wallpaper](https://images5.alphacoders.com/133/1330479.png) by [patrika](https://alphacoders.com/users/profile/227699/patrika), [font](https://www.1001fonts.com/kognigear-font.html)
|
||||
- Post-apocalyptic hacker: [wallpaper](https://images.alphacoders.com/137/thumb-1920-1375178.png) by [patrika](https://alphacoders.com/users/profile/227699/patrika), [font](https://www.1001fonts.com/fragile-bombers-font.html)
|
||||
- Hyprland Kath: [wallpaper](https://motionbgs.com/andvari-last-origin), [font](https://www.1001fonts.com/pixelon-font.html)
|
||||
- Pixel sakura: [wallpaper](https://imgur.com/gallery/sakura-tree-with-petals-flying-off-t5tg4N8), [font](https://www.1001fonts.com/arcadeclassic-font.html)
|
||||
- Jake the dog: [wallpaper](https://motionbgs.com/jake-the-dog), [font](https://fontmeme.com/fonts/thunderman-font/)
|
||||
|
||||
## Supporting project
|
||||
|
||||
You can support me simply by dropping a **star** on **[github](https://github.com/Keyitdev/sddm-astronaut-theme)** or giving a **subscription** on **[YouTube](http://www.youtube.com/channel/UCVoGVyAP2sHPQyegwBMJKyQ?sub_confirmation=1)**.
|
||||
|
||||
If you enjoyed it and would like to show your appreciation, you can make a **[donation](https://ko-fi.com/keyitdev)** using **[kofi](https://ko-fi.com/keyitdev)**.
|
||||
|
||||
[](https://ko-fi.com/keyitdev)
|
||||
|
||||
Distributed under the **[GPLv3+](https://www.gnu.org/licenses/gpl-3.0.html) License**.
|
||||
Copyright (C) 2022-2025 Keyitdev.
|
||||
@@ -1,152 +0,0 @@
|
||||
[General]
|
||||
#################### General ####################
|
||||
|
||||
ScreenWidth="2560"
|
||||
ScreenHeight="1440"
|
||||
ScreenPadding=""
|
||||
# Default 0, Options: from 0 to min(screen width/2,screen height/2).
|
||||
|
||||
Font="Pixelon"
|
||||
FontSize="24"
|
||||
# Default is screen height divided by 80 (1080/80=13.5), Options: 0-inf.
|
||||
|
||||
KeyboardSize="0.4"
|
||||
# Default 0.4, Options 0.1-1.0
|
||||
|
||||
RoundCorners="20"
|
||||
|
||||
Locale=""
|
||||
# Locale for data and time format. I suggest leaving it blank.
|
||||
HourFormat="HH:mm"
|
||||
# Default Locale.ShortFormat.
|
||||
DateFormat="dddd d"
|
||||
# Default Locale.LongFormat.
|
||||
|
||||
HeaderText="InoriShio"
|
||||
# You can put somehting fun.
|
||||
|
||||
#################### Background ####################
|
||||
|
||||
BackgroundPlaceholder=""
|
||||
# Must be a relative path.
|
||||
# Background displayed before the actual background is loaded.
|
||||
# Use only if the background is a video, otherwise leave blank.
|
||||
# Connected with: Background.
|
||||
Background="Backgrounds/Bocchi.mp4"
|
||||
# Must be a relative path.
|
||||
# Supports: png, jpg, jpeg, webp, gif, avi, mp4, mov, mkv, m4v, webm.
|
||||
BackgroundSpeed=""
|
||||
# Default 1.0. Options: 0.0-10.0 (can go higher).
|
||||
# Speed of animated wallpaper.
|
||||
# Connected with: Background.
|
||||
PauseBackground=""
|
||||
# Default false.
|
||||
# If set to true, stops playback of gifs. Works only with gifs.
|
||||
# Connected with: Background.
|
||||
DimBackground="0.0"
|
||||
# Options: 0.0-1.0.
|
||||
# Connected with: DimBackgroundColor
|
||||
CropBackground="true"
|
||||
# Default false.
|
||||
# Crop or fit background.
|
||||
# Connected with: BackgroundHorizontalAlignment and BackgroundVerticalAlignment dosn't work when set to true.
|
||||
BackgroundHorizontalAlignment="center"
|
||||
# Default: center, Options: left, center, right.
|
||||
# Horizontal position of the background picture.
|
||||
# Connected with: CropBackground must be set to false.
|
||||
BackgroundVerticalAlignment="center"
|
||||
# Horizontal position of the background picture.
|
||||
# Default: center, Options: bottom, center, top.
|
||||
# Connected with: CropBackground must be set to false.
|
||||
|
||||
#################### Colors ####################
|
||||
|
||||
HeaderTextColor="#21222c"
|
||||
DateTextColor="#21222c"
|
||||
TimeTextColor="#21222c"
|
||||
|
||||
FormBackgroundColor="#21222c"
|
||||
BackgroundColor="#21222c"
|
||||
DimBackgroundColor="#21222c"
|
||||
|
||||
LoginFieldBackgroundColor="#21222c"
|
||||
PasswordFieldBackgroundColor="#21222c"
|
||||
LoginFieldTextColor="#ffffff"
|
||||
PasswordFieldTextColor="#ffffff"
|
||||
UserIconColor="#ffffff"
|
||||
PasswordIconColor="#ffffff"
|
||||
|
||||
PlaceholderTextColor="#7c6f64"
|
||||
WarningColor="#32302f"
|
||||
|
||||
LoginButtonTextColor="#32302f"
|
||||
LoginButtonBackgroundColor="#ffffff"
|
||||
SystemButtonsIconsColor="#32302f"
|
||||
SessionButtonTextColor="#32302f"
|
||||
|
||||
DropdownTextColor="#ffffff"
|
||||
DropdownSelectedBackgroundColor="#7c6f64"
|
||||
DropdownBackgroundColor="#32302f"
|
||||
|
||||
HighlightTextColor="#877bb0"
|
||||
HighlightBackgroundColor="#ffffff"
|
||||
HighlightBorderColor="transparent"
|
||||
|
||||
HoverUserIconColor="#877bb0"
|
||||
HoverPasswordIconColor="#877bb0"
|
||||
HoverSystemButtonsIconsColor="#7c6f64"
|
||||
HoverSessionButtonTextColor="#7c6f64"
|
||||
|
||||
#################### Form ####################
|
||||
|
||||
PartialBlur=""
|
||||
# Default false.
|
||||
FullBlur=""
|
||||
# Default false.
|
||||
# If you use FullBlur I recommend setting BlurMax to 64 and Blur to 1.0.
|
||||
BlurMax=""
|
||||
# Default 48, Options: 2-64 (can go higher because depends on Blur).
|
||||
# Connected with: Blur.
|
||||
Blur=""
|
||||
# Default 2.0, Options: 0.0-3.0 (without 3.0).
|
||||
# Connected with: BlurMax.
|
||||
|
||||
HaveFormBackground="false"
|
||||
# Form background is transparent if set to false.
|
||||
# Connected with: PartialBlur and BackgroundColor.
|
||||
FormPosition="left"
|
||||
# Default: left, Options: left, center, right.
|
||||
|
||||
#################### Interface Behavior ####################
|
||||
|
||||
HideSystemButtons="true"
|
||||
HideLoginButton="false"
|
||||
|
||||
ForceLastUser="true"
|
||||
# If set to true last successfully logged in user appeares automatically in the username field.
|
||||
PasswordFocus="true"
|
||||
# Automaticaly focuses password field.
|
||||
HideCompletePassword="true"
|
||||
# Hides the password while typing.
|
||||
AllowEmptyPassword="false"
|
||||
# Enable login for users without a password.
|
||||
AllowUppercaseLettersInUsernames="false"
|
||||
# Do not change this! Uppercase letters are generally not allowed in usernames. This option is only for systems that differ from this standard!
|
||||
BypassSystemButtonsChecks="false"
|
||||
# Skips checking if sddm can perform shutdown, restart, suspend or hibernate, always displays all system buttons.
|
||||
RightToLeftLayout="false"
|
||||
# Revert the layout either because you would like the login to be on the right hand side or SDDM won't respect your language locale for some reason. This will reverse the current position of FormPosition if it is either left or right and in addition position some smaller elements on the right hand side of the form itself (also when FormPosition is set to center).
|
||||
|
||||
#################### Translation ####################
|
||||
|
||||
# These don't necessarily need to translate anything. You can enter whatever you want here.
|
||||
TranslatePlaceholderUsername=""
|
||||
TranslatePlaceholderPassword=""
|
||||
TranslateLogin=""
|
||||
TranslateLoginFailedWarning=""
|
||||
TranslateCapslockWarning=""
|
||||
TranslateSuspend=""
|
||||
TranslateHibernate=""
|
||||
TranslateReboot=""
|
||||
TranslateShutdown=""
|
||||
TranslateSessionSelection=""
|
||||
@@ -1,14 +0,0 @@
|
||||
[SddmGreeterTheme]
|
||||
Name=inorishio-theme
|
||||
Description=cream-da-la-cream
|
||||
Author=inorishio
|
||||
Website=https://github.com/inorishio
|
||||
License=GPL-3.0-or-later
|
||||
Type=sddm-theme
|
||||
Version=1.3
|
||||
ConfigFile=Themes/inorishio_aesthetic.conf
|
||||
MainScript=Main.qml
|
||||
TranslationsDirectory=translations
|
||||
Theme-Id=sddm-astronaut-theme
|
||||
Theme-API=2.0
|
||||
QtVersion=6
|
||||