diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..77c1daa --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +hyprland/hyprpaper.conf diff --git a/clang_format b/clang_format new file mode 100644 index 0000000..0dd9657 --- /dev/null +++ b/clang_format @@ -0,0 +1,334 @@ +--- +Language: Cpp +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignArrayOfStructures: None +AlignConsecutiveAssignments: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionDeclarations: false + AlignFunctionPointers: false + PadOperators: true +AlignConsecutiveBitFields: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionDeclarations: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveDeclarations: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionDeclarations: true + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveMacros: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionDeclarations: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveShortCaseStatements: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCaseArrows: false + AlignCaseColons: false +AlignConsecutiveTableGenBreakingDAGArgColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionDeclarations: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveTableGenCondOperatorColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionDeclarations: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveTableGenDefinitionColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionDeclarations: false + AlignFunctionPointers: false + PadOperators: false +AlignEscapedNewlines: Left +AlignOperands: Align +AlignTrailingComments: + Kind: Always + OverEmptyLines: 0 +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowBreakBeforeNoexceptSpecifier: Never +AllowShortBlocksOnASingleLine: Never +AllowShortCaseExpressionOnASingleLine: true +AllowShortCaseLabelsOnASingleLine: false +AllowShortCompoundRequirementOnASingleLine: true +AllowShortEnumsOnASingleLine: true +AllowShortFunctionsOnASingleLine: false +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: true +AllowShortNamespacesOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AttributeMacros: + - __capability + - absl_nonnull + - absl_nullable + - absl_nullability_unknown +BinPackArguments: false +BinPackLongBracedList: true +BinPackParameters: false +BitFieldColonSpacing: Both +BracedInitializerIndentWidth: -1 +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: Never + AfterEnum: false + AfterExternBlock: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakAdjacentStringLiterals: true +BreakAfterAttributes: Leave +BreakAfterJavaFieldAnnotations: false +BreakAfterReturnType: None +BreakArrays: true +BreakBeforeBinaryOperators: None +BreakBeforeConceptDeclarations: Always +BreakBeforeBraces: Allman +BreakBeforeInlineASMColon: OnlyMultiline +BreakBeforeTemplateCloser: false +BreakBeforeTernaryOperators: true +BreakBinaryOperations: Never +BreakConstructorInitializers: BeforeColon +BreakFunctionDefinitionParameters: false +BreakInheritanceList: BeforeColon +BreakStringLiterals: true +BreakTemplateDeclarations: Yes +ColumnLimit: 120 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerIndentWidth: 2 +ContinuationIndentWidth: 2 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: LogicalBlock +EnumTrailingComma: Leave +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: false +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IfMacros: + - KJ_IF_MAYBE +IncludeBlocks: Regroup +IncludeCategories: + - Regex: '^' + Priority: 2 + SortPriority: 0 + CaseSensitive: false + - Regex: '^<.*\.h>' + Priority: 1 + SortPriority: 0 + CaseSensitive: false + - Regex: '^<.*' + Priority: 2 + SortPriority: 0 + CaseSensitive: false + - Regex: '.*' + Priority: 3 + SortPriority: 0 + CaseSensitive: false +IncludeIsMainRegex: '([-_](test|unittest))?$' +IncludeIsMainSourceRegex: '' +IndentAccessModifiers: false +IndentCaseBlocks: false +IndentCaseLabels: true +IndentExportBlock: true +IndentExternBlock: AfterExternBlock +IndentGotoLabels: true +IndentPPDirectives: None +IndentRequiresClause: true +IndentWidth: 2 +IndentWrappedFunctionNames: false +InsertBraces: false +InsertNewlineAtEOF: false +InsertTrailingCommas: None +IntegerLiteralSeparator: + Binary: 0 + BinaryMinDigits: 0 + Decimal: 0 + DecimalMinDigits: 0 + Hex: 0 + HexMinDigits: 0 +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLines: + AtEndOfFile: false + AtStartOfBlock: false + AtStartOfFile: true +KeepFormFeed: false +LambdaBodyIndentation: Signature +LineEnding: DeriveLF +MacroBlockBegin: '' +MacroBlockEnd: '' +MainIncludeChar: Quote +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: All +ObjCBinPackProtocolList: Never +ObjCBlockIndentWidth: 2 +ObjCBreakBeforeNestedBlockParam: true +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +OneLineFormatOffRegex: '' +PackConstructorInitializers: Never +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakBeforeMemberAccess: 150 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakOpenParenthesis: 0 +PenaltyBreakScopeResolution: 500 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyIndentedWhitespace: 0 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +PPIndentWidth: -1 +QualifierAlignment: Leave +RawStringFormats: + - Language: Cpp + Delimiters: + - cc + - CC + - cpp + - Cpp + - CPP + - 'c++' + - 'C++' + CanonicalDelimiter: '' + BasedOnStyle: google + - Language: TextProto + Delimiters: + - pb + - PB + - proto + - PROTO + EnclosingFunctions: + - EqualsProto + - EquivToProto + - PARSE_PARTIAL_TEXT_PROTO + - PARSE_TEST_PROTO + - PARSE_TEXT_PROTO + - ParseTextOrDie + - ParseTextProtoOrDie + - ParseTestProto + - ParsePartialTestProto + CanonicalDelimiter: pb + BasedOnStyle: google +ReferenceAlignment: Pointer +ReflowComments: Always +RemoveBracesLLVM: false +RemoveEmptyLinesInUnwrappedLines: false +RemoveParentheses: Leave +RemoveSemicolon: false +RequiresClausePosition: OwnLine +RequiresExpressionIndentation: OuterScope +SeparateDefinitionBlocks: Always +ShortNamespaceLines: 1 +SkipMacroDefinitionBody: false +SortIncludes: + Enabled: true + IgnoreCase: false +SortJavaStaticImport: Before +SortUsingDeclarations: LexicographicNumeric +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterOperatorKeyword: false +SpaceAfterTemplateKeyword: true +SpaceAroundPointerQualifiers: Default +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeJsonColon: false +SpaceBeforeParens: ControlStatements +SpaceBeforeParensOptions: + AfterControlStatements: true + AfterForeachMacros: true + AfterFunctionDefinitionName: false + AfterFunctionDeclarationName: false + AfterIfMacros: true + AfterNot: false + AfterOverloadedOperator: false + AfterPlacementOperator: true + AfterRequiresInClause: false + AfterRequiresInExpression: false + BeforeNonEmptyParentheses: false +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: Never +SpacesInContainerLiterals: true +SpacesInLineCommentPrefix: + Minimum: 1 + Maximum: -1 +SpacesInParens: Never +SpacesInParensOptions: + ExceptDoubleParentheses: false + InCStyleCasts: false + InConditionalStatements: false + InEmptyParentheses: false + Other: false +SpacesInSquareBrackets: false +Standard: Auto +StatementAttributeLikeMacros: + - Q_EMIT +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +TableGenBreakInsideDAGArg: DontBreak +TabWidth: 2 +UseTab: Never +VerilogBreakBetweenInstancePorts: true +WhitespaceSensitiveMacros: + - BOOST_PP_STRINGIZE + - CF_SWIFT_NAME + - NS_SWIFT_NAME + - PP_STRINGIZE + - STRINGIZE +WrapNamespaceBodyWithEmptyLines: Leave +... + diff --git a/configs b/configs index 1494c79..c6ce035 100644 --- a/configs +++ b/configs @@ -1,2 +1,7 @@ -nvim ~/.config/nvim -waybar ~/.config/waybar +nvim ~/.config/nvim +waybar ~/.config/waybar +rofi ~/.config/rofi +hyprland ~/.config/hypr +kitty ~/.config/kitty +zshrc ~/.zshrc +clang_format ~/.clang-format diff --git a/hyprland/hyprland.conf b/hyprland/hyprland.conf new file mode 100644 index 0000000..1081014 --- /dev/null +++ b/hyprland/hyprland.conf @@ -0,0 +1,463 @@ + +# ####################################################################################### +# AUTOGENERATED HYPRLAND CONFIG. +# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT, +# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +# ####################################################################################### + +autogenerated = 0 # remove this line to remove the warning + +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/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.hyprland.org/Configuring/Monitors/ +# monitor=DP-3,2560x1440@165,0x0,1 +# monitor=DP-2,2560x1440@165,2560x0,1 + +# monitor=DP-3,2560x1440@165,0x0,1 +# monitor=DP-4,2560x1440@165,2560x0,1 + +monitor=DP-4,2560x1440@165,2560x0,1 +monitor=DP-5,2560x1440@165,0x0,1 + + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$fileManager = dolphin +$menu = rofi -show drun + + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +# exec-once = $terminal +# exec-once = nm-applet & +# exec-once = waybar & hyprpaper & firefox +exec-once = hyprpaper +exec-once = waybar +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + +exec-once = steam +exec-once = firefox +exec-once = discord + +# Find my CPU temperature folder and link it to /tmp/temperature, so that waybar always uses the correct hwmon number +exec-once = ln -sf $(dirname $(grep -l AMD /sys/class/hwmon/hwmon*/temp1_label))/temp1_input /tmp/temperature +# exec-once = ln -sf $(dirname $(grep -l Tctl /sys/class/hwmon/hwmon*/temp1_label))/temp1_input /tmp/temperature + + +############################# +### ENVIRONMENT VARIABLES ### +############################# +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +env = XDG_SESSION_DESKTOP,Hyprland +env = LIBVA_DRIVER_NAME,nvidia +env = __GLX_VENDOR_LIBRARY_NAME,nvidia + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +cursor { + sync_gsettings_theme=true + inactive_timeout = 0 + no_hardware_cursors = false + enable_hyprcursor = false + hide_on_key_press = false + hide_on_touch = false +} + + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 2 + gaps_out = 0 + + border_size = 1 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = true + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 0 + 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.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 5 + + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade +} + +# Ref https://wiki.hyprland.org/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 = bordersize 0, floating:0, onworkspace:w[tv1] +# windowrule = rounding 0, floating:0, onworkspace:w[tv1] +# windowrule = bordersize 0, floating:0, onworkspace:f[1] +# windowrule = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + # pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( + enable_anr_dialog = false + mouse_move_focuses_monitor = false +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us,se + kb_variant = + kb_model = + kb_options=grp:caps_toggle + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + accel_profile=flat + repeat_delay=200 + repeat_rate=40 + + touchpad { + natural_scroll = false + } +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + +# screencopy { +# custom_picker_binary = hyprland-preview-share-picker +# max_fps = 60 +# } + + +################### +### KEYBINDINGS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, RETURN, exec, $terminal +bind = $mainMod SHIFT, Q, killactive, +bind = $mainMod, M, exec, ~/Scripts/toggle_mic.sh +bind = $mainMod, P, exec, ./Scripts/toggle_speaker.sh +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, Space, togglefloating, +bind = $mainMod, F, fullscreen, +bind = $mainMod, R, exec, $menu +# bind = $mainMod, P, pseudo, # dwindle +#bind = $mainMod, J, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, h, movefocus, l +bind = $mainMod, l, movefocus, r +bind = $mainMod, j, movefocus, d +bind = $mainMod, k, movefocus, u + +bind = $mainMod SHIFT, h, movewindow, l +bind = $mainMod SHIFT, l, movewindow, r +bind = $mainMod SHIFT, j, movewindow, d +bind = $mainMod SHIFT, k, movewindow, u + +bind = $mainMod CTRL, h, movecurrentworkspacetomonitor, l +bind = $mainMod CTRL, l, movecurrentworkspacetomonitor, r + +# 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 s 10%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +bindl = , print, exec, hyprshot -s -m region -- firefox +bindl = $mainMod, print, exec, hyprshot -s -m window -- firefox + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule +# windowrule = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. +# windowrule = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrule { + name = windowrule-1 + no_focus = on + match:class = ^$ + match:title = ^$ + match:xwayland = 1 + match:float = 1 + match:fullscreen = 0 + match:pin = 0 +} + + +windowrule { + name = windowrule-2 + workspace = 4 silent + center = on + match:initial_class = explorer.exe +} + +windowrule { + name = windowrule-3 + workspace = 4 silent + match:initial_class = jagexlauncher.exe +} + +windowrule { + name = windowrule-4 + workspace = 3 silent + match:initial_class = RuneScape +} + +windowrule { + name = windowrule-5 + workspace = 3 silent + tile = on + match:initial_class = rs2client.exe +} + +windowrule { + name = windowrule-6 + workspace = 3 silent + float = on + match:initial_title = XpTracker +} + +windowrule { + name = Steam1 + float = off + workspace = 8 silent + match:initial_class = steam + match:initial_title = Steam* +} + +windowrule { + name = Steam2 + float = off + workspace = 8 silent + match:initial_class = steam + match:initial_title = Friends List +} + +windowrule { + name = windowrule-8 + workspace = 9 silent + match:initial_class = discord +} + +windowrule { + name = windowrule-9 + workspace = 9 silent + match:initial_class = vesktop +} + +# windowrule = tile, initialClass:steam +windowrule { + name = windowrule-10 + float = on + match:initial_class = Electron + match:initial_title = Electron +} + + +windowrule { + name = windowrule-11 + float = on + match:initial_class = org.gtk.example +} + + +windowrule { + name = windowrule-12 + float = on + size = 480 300 + move = (10) (56) + match:initial_title = kitty-update +} + + +windowrule { + name = windowrule-13 + opacity = 0.0 override + no_anim = on + no_initial_focus = on + max_size = 1 1 + no_blur = on + no_focus = on + match:class = ^(xwaylandvideobridge)$ +} + +windowrule { + name = windowrule-14 + opacity = 0.0 override + no_anim = on + no_initial_focus = on + max_size = 1 1 + no_blur = on + no_focus = on + match:class = ^(xwaylandvideobridge)$ +} + + diff --git a/hyprland/hyprlock.conf b/hyprland/hyprlock.conf new file mode 100644 index 0000000..f815bfc --- /dev/null +++ b/hyprland/hyprlock.conf @@ -0,0 +1,92 @@ +# sample hyprlock.conf +# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock +# +# rendered text in all widgets supports pango markup (e.g. or tags) +# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks +# +# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace + +$font = Monospace + +general { + hide_cursor = true +} + +# uncomment to enable fingerprint authentication +# auth { +# fingerprint { +# enabled = true +# ready_message = Scan fingerprint to unlock +# present_message = Scanning... +# retry_delay = 250 # in milliseconds +# } +# } + +animations { + enabled = true + bezier = linear, 1, 1, 0, 0 + animation = fadeIn, 1, 5, linear + animation = fadeOut, 1, 5, linear + animation = inputFieldDots, 1, 2, linear +} + +background { + monitor = + path = screenshot + blur_passes = 3 +} + +input-field { + monitor = + size = 20%, 5% + outline_thickness = 3 + inner_color = rgba(0, 0, 0, 0.0) # no fill + + outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg + check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg + fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg + + font_color = rgb(143, 143, 143) + fade_on_empty = false + rounding = 15 + + font_family = $font + placeholder_text = Input password... + fail_text = $PAMFAIL + + # uncomment to use a letter instead of a dot to indicate the typed password + # dots_text_format = * + # dots_size = 0.4 + dots_spacing = 0.3 + + # uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator) + # hide_input = true + + position = 0, -20 + halign = center + valign = center +} + +# TIME +label { + monitor = + text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution + font_size = 90 + font_family = $font + + position = -30, 0 + halign = right + valign = top +} + +# DATE +label { + monitor = + text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds + font_size = 25 + font_family = $font + + position = -30, -150 + halign = right + valign = top +} diff --git a/hyprland/xdph.conf b/hyprland/xdph.conf new file mode 100644 index 0000000..bb7a04e --- /dev/null +++ b/hyprland/xdph.conf @@ -0,0 +1,4 @@ +screencopy { + max_fps = 60 + custom_picker_binary = hyprland-preview-share-picker +} diff --git a/install.sh b/install.sh index d5cb29a..1b6ff69 100755 --- a/install.sh +++ b/install.sh @@ -1,11 +1,16 @@ parameter=$1 +keep_backup=1 install() { if [[ $parameter == "all" ]] || [[ $parameter == $1 ]]; then echo "Installing $1 config in $2" - rm -rf $2_backup/ - mv $2/ $2_backup/ - cp -r $1 $2/ + if [[ $keep_backup -eq 1 ]]; then + rm -rf $2_backup + mv $2 $2_backup + else + rm -rf $2 + fi + cp -rf $1 $2 fi } @@ -18,6 +23,23 @@ if [[ $parameter == '' ]]; then exit fi +read -p "Do you want to back up your old config files? (y/n) " yn +case $yn in +[Nn]*) + keep_backup=0 + break + ;; +[Yy]*) + keep_backup=1 + break + ;; +*) + echo "Unknown answer, treating it as yes" + keep_backup=1 + break + ;; +esac + while read name path; do eval "name=$name" # re-evaluate the string as a path eval "path=$path" # re-evaluate the string as a path diff --git a/kitty/colors.conf b/kitty/colors.conf new file mode 100644 index 0000000..1c8db46 --- /dev/null +++ b/kitty/colors.conf @@ -0,0 +1,19 @@ +color0 #5f2606 +color8 #863608 +color1 #f78787 +color9 #770707 +color2 #87f787 +color10 #077707 +color3 #f7f787 +color11 #777707 +color4 #8787f7 +color12 #070777 +color5 #f787f7 +color13 #770777 +color6 #87f7f7 +color14 #077777 +color7 #5f2606 +color15 #863608 +foreground #f8bf9f +background #5f2606 +cursor #f8bf9f diff --git a/kitty/kitty.conf b/kitty/kitty.conf new file mode 100644 index 0000000..6c0079a --- /dev/null +++ b/kitty/kitty.conf @@ -0,0 +1,4 @@ +enable_audio_bell no +map ctrl+shift+n new_os_window_with_cwd +include vscode-dark.conf +background_opacity 0.80 diff --git a/kitty/vscode-dark.conf b/kitty/vscode-dark.conf new file mode 100644 index 0000000..60b24cf --- /dev/null +++ b/kitty/vscode-dark.conf @@ -0,0 +1,41 @@ +macos_titlebar_color background + +foreground #d4d4d4 +background #1e1e1e +selection_foreground #1e1e1e +selection_background #d7ba7d +url_color #4ec9b0 +cursor #d4d4d4 +cursor_text_color #1e1e1e + +# black +color0 #000000 +color8 #808080 + +# red +color1 #d16969 +color9 #ce9178 + +# green +color2 #608b4e +color10 #b5cea8 + +# yellow +color3 #d7ba7d +color11 #dcdcaa + +# blue +color4 #569cd6 +color12 #9cdcfe + +# magenta +color5 #c586c0 +color13 #c586c0 + +# cyan +color6 #4ec9b0 +color14 #4ec9b0 + +# white +color7 #d4d4d4 +color15 #ffffff diff --git a/rofi/colors.rasi b/rofi/colors.rasi new file mode 100644 index 0000000..672b258 --- /dev/null +++ b/rofi/colors.rasi @@ -0,0 +1,22 @@ +* { + white: #f8bf9f; + whiteAlt: #f6a678; + black: #5f2606; + blackAlt: #863608; + red: #f78787; + redAlt: #770707; + green: #87f787; + greenAlt: #077707; + yellow: #f7f787; + yellowAlt: #777707; + blue: #8787f7; + blueAlt: #070777; + purple: #f787f7; + purpleAlt: #770777; + cyan: #87f7f7; + cyanAlt: #077777; + foreground: #f8bf9f; + foregroundAlt: #f6a678; + background: #5f2606; + backgroundAlt: #863608; +} \ No newline at end of file diff --git a/rofi/config.rasi b/rofi/config.rasi new file mode 100644 index 0000000..482a3e9 --- /dev/null +++ b/rofi/config.rasi @@ -0,0 +1,82 @@ +@import "colors.rasi" +* { + background-color: @background; + border-color: @background; + spacing: 2; +} + +configuration +{ + hover-select: true; + me-select-entry: ""; + me-accept-entry: [ MousePrimary, MouseSecondary, MouseDPrimary ]; + kb-cancel: "Escape,MousePrimary"; +} +#window { + location: North West; + background-color: @background; + border-color: @foreground; + border: 1; + padding: 2.5ch; + y-offset: 0px; + x-offset: 10px; + border-radius: 10px; +} + +#mainbox { + border: 0; + padding: 0; + background-color: transparent; +} +entry { + background-color: transparent; +} + +listview { + background-color: transparent; +} + +element { + padding: 2px 7px; + border-radius: 10px; +} + +prompt { + text-color: @foreground; + padding: 0 6px 0 0; +} + +entry { + text-color: @foreground; + placeholder-color: @foregroundAlt; + padding: 0 6px 0 0; +} + +textbox-prompt-colon { + text-color: @foreground; + padding: 0 6px 0 0; +} + +element-text { + text-color: inherit; +} + +element selected.normal { + background-color: @foreground; + text-color: @background; +} + +element normal.normal { + background-color: @background; + text-color: @foreground; +} + +element alternate.normal { + background-color: @backgroundAlt; + text-color: @foreground; +} + +scrollbar { + background-color: @background; + handle-color: @foreground; +} diff --git a/rofi/power.rasi b/rofi/power.rasi new file mode 100644 index 0000000..a07f450 --- /dev/null +++ b/rofi/power.rasi @@ -0,0 +1,171 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Rofi Theme File + * Rofi Version: 1.7.3 + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; + hover-select: true; + me-select-entry: ""; + me-accept-entry: [ MousePrimary, MouseSecondary, MouseDPrimary ]; + kb-cancel: "Escape,MousePrimary"; +} + +/*****----- Global Properties -----*****/ +@import "~/.config/rofi/colors.rasi" + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: North East; + anchor: center; + fullscreen: false; + width: 440px; + x-offset: -10px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @foreground; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @foreground; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @foreground; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", dummy, "prompt"]; +} + +dummy { + background-color: transparent; +} + +textbox-prompt-colon { + enabled: false; + expand: false; + str: ""; + padding: 0px 0px; + border-radius: 4px; + background-color: @red; + text-color: @background; +} +prompt { + enabled: false; + padding: 0px; + border-radius: 4px; + background-color: @foreground; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @foreground; + background-color: @background; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; + placeholder-color: @foreground; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @foreground; + background-color: @background; + text-color: @foreground; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @foreground; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 4px; + border-color: @foreground; + background-color: @backgroundAlt; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} +element selected.normal { + border: 0px 2px 0px 2px; + border-radius: 4px; + background-color: @foreground; + text-color: @background; +} + diff --git a/zshrc b/zshrc new file mode 100644 index 0000000..a11528c --- /dev/null +++ b/zshrc @@ -0,0 +1,107 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH + +# Path to your Oh My Zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time Oh My Zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="robbyrussell" +DISABLE_AUTO_UPDATE=true + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='nvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch $(uname -m)" + +# Set personal aliases, overriding those provided by Oh My Zsh libs, +# plugins, and themes. Aliases can be placed here, though Oh My Zsh +# users are encouraged to define aliases within a top-level file in +# the $ZSH_CUSTOM folder, with .zsh extension. Examples: +# - $ZSH_CUSTOM/aliases.zsh +# - $ZSH_CUSTOM/macos.zsh +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" +alias gg="git grep -n" +alias vim=nvim