Compare commits

..

62 Commits

Author SHA1 Message Date
463889f166 use capslock as esc 2024-09-19 17:57:15 +02:00
564708e505 some zshrc stuff 2024-09-08 21:55:53 +02:00
7911ff53b8 added lazygit config 2024-09-08 21:55:16 +02:00
058334fdfe removed unused profile config vars 2024-09-08 21:54:37 +02:00
83e63b5d83 moved desktop scripts to nix package 2024-09-08 21:53:29 +02:00
a9323f4aec hyprland new mouse settings 2024-09-08 21:51:50 +02:00
2834f960b3 git delta for blame 2024-09-08 21:24:58 +02:00
17ecd5ec71 alacritty ui changes 2024-09-08 21:21:32 +02:00
e3934aea05 added boot to windows from nix config to powermenu 2024-06-18 21:35:17 +02:00
deaff85de5 fixed oh-my-posh promt order 2024-06-18 21:33:24 +02:00
ae0181148b removed metapkg
not needed anymore. Switched from Arch
2024-06-18 21:32:24 +02:00
e4d2947f66 added oh-my-posh. Removed p10k 2024-06-11 23:44:44 +02:00
21769684b1 Merge pull request 'nix is now the master' (#1) from nix into master
Reviewed-on: #1
2024-06-01 19:12:43 +00:00
ec866a2bb1 vscode cleanup 2024-06-01 21:10:43 +02:00
880a59e531 chadrc color theme 2024-06-01 21:10:03 +02:00
857dff3253 removed unused wallpaper set calls 2024-06-01 21:03:42 +02:00
4ca3f717d6 oh yeah it's update time 2024-06-01 20:58:43 +02:00
bf3d8f2215 fixed screenshot script path in hyprland 2024-03-31 23:17:02 +02:00
71abf58c40 updated scripts 2024-03-31 23:16:00 +02:00
45e1045a90 removed unused scripts 2024-03-31 23:15:28 +02:00
20569ee0a7 removed scripts in from PATH 2024-03-31 23:12:58 +02:00
cd8bd0c95f flatpak overrides update new paths 2024-03-31 23:12:05 +02:00
1c8beadaa6 too lazy. something zsh. 2024-03-31 23:10:27 +02:00
425a7e9565 .profile cleanup 2024-03-31 23:09:19 +02:00
9e652df0e9 added .vscode to gitignore 2024-03-31 21:54:56 +02:00
a61c8a5e78 added webp coversion scipt 2024-03-07 14:24:28 +01:00
92b619f61b added new permission for steam flatpak 2024-03-05 11:38:25 +01:00
19f7e68a2e fixed shebang in script 2024-03-05 11:36:09 +01:00
e2143ef4d8 updated gtk config 2024-03-05 11:35:00 +01:00
48225e8e97 untracked p10k config 2024-03-05 11:32:50 +01:00
b2f3428a2b added product.json to vscodium 2024-03-04 17:45:01 +01:00
3ba41f56dc linked vscodium config 2024-03-04 15:55:07 +01:00
7f80be1f31 added git-unpushed script 2024-02-28 23:28:06 +01:00
70535430b9 fixed .profile data path 2024-02-26 14:58:18 +01:00
9c917bd97f nixed zshrc 2024-02-26 14:56:07 +01:00
dc75f8b062 removed nord colors file for hyprland 2024-01-12 04:26:20 +01:00
865f63ecbe added default colors for hyprland 2024-01-12 04:24:56 +01:00
f3ccfbfb9d added waybar color template for wal 2024-01-12 04:21:09 +01:00
fa6deede5f added wal.sh 2024-01-12 02:48:16 +01:00
571d65bda8 use sudoedit 2024-01-12 00:39:49 +01:00
2425b9ec52 removed hyper-chan :( 2024-01-12 00:38:53 +01:00
f3606d3fd0 screenshit stuff 2023-12-02 02:24:01 +01:00
5c9cb4ef94 profile update 2023-12-02 02:23:04 +01:00
a8c82f7294 updated zshrc 2023-12-02 02:22:06 +01:00
a93fb0f4ec waybar update 2023-12-02 00:00:56 +01:00
08390b9437 metapkg update 2023-12-01 23:56:54 +01:00
fcc14643c1 hyperland update keybinds & xkb setting 2023-12-01 23:51:50 +01:00
6500282293 added eww config 2023-11-27 00:34:43 +01:00
cd5ae55cd3 fixed git profile select 2023-11-07 18:46:22 +01:00
80199181b9 removed upload to nextcloud 2023-11-01 23:29:52 +01:00
851b1538ab moved global gitignore into git config dir 2023-11-01 23:28:12 +01:00
7ee2892ec1 updated git config to use seperate user profiles 2023-11-01 23:23:01 +01:00
a0907a888f added uploade image script for imgur upload 2023-11-01 23:17:43 +01:00
ac09714cc6 changed waybar style and config 2023-10-26 20:57:09 +02:00
b33675b792 added current waybar style 2023-10-25 22:45:26 +02:00
59dff59883 updated metapackage 2023-10-19 15:16:52 +02:00
d79e9d6881 updated gitconfig 2023-10-18 00:44:26 +02:00
4a67266a2f open new project in vscode 2023-10-18 00:38:17 +02:00
d236dcc8c7 updated screenshot scripts 2023-10-18 00:37:29 +02:00
12cd2e2fba minor fixes in scripts 2023-10-18 00:34:53 +02:00
29841882d4 waybar on top layer for context menu fix 2023-10-18 00:18:27 +02:00
fd4fae0cd5 windows rules for ts3,dc,ff & color theme 2023-10-18 00:16:27 +02:00
78 changed files with 794 additions and 3150 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +1,16 @@
{ {
"glassit.alpha": 220,
"workbench.iconTheme": "vscode-icons",
"terminal.integrated.fontFamily": "'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback', 'Hack Nerd Font'", "terminal.integrated.fontFamily": "'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback', 'Hack Nerd Font'",
"workbench.enableExperiments": false,
"update.mode": "manual", "update.mode": "manual",
"telemetry.enableCrashReporter": false, "telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false, "telemetry.enableTelemetry": false,
"vsicons.dontShowNewVersionMessage": true,
"terminal.integrated.cursorStyle": "line", "terminal.integrated.cursorStyle": "line",
"explorer.confirmDelete": false, "explorer.confirmDelete": false,
"C_Cpp.intelliSenseEngine": "Tag Parser",
"explorer.confirmDragAndDrop": false, "explorer.confirmDragAndDrop": false,
"git.confirmSync": false, "git.confirmSync": false,
"csharp.semanticHighlighting.enabled": true,
"terminal.external.linuxExec": "alacritty", "terminal.external.linuxExec": "alacritty",
"terminal.integrated.copyOnSelection": true, "terminal.integrated.copyOnSelection": true,
"terminal.integrated.rightClickBehavior": "paste", "terminal.integrated.rightClickBehavior": "paste",
"debug.onTaskErrors": "showErrors", "debug.onTaskErrors": "showErrors",
"omnisharp.enableImportCompletion": true,
"omnisharp.useGlobalMono": "always",
"gitlens.currentLine.enabled": false, "gitlens.currentLine.enabled": false,
"gitlens.hovers.currentLine.over": "line", "gitlens.hovers.currentLine.over": "line",
"gitlens.codeLens.enabled": false, "gitlens.codeLens.enabled": false,

View File

@@ -10,17 +10,4 @@
<startup-notify/> <startup-notify/>
<directories/> <directories/>
</action> </action>
<action>
<icon></icon>
<name>Upload to Nextcloud</name>
<unique-id>1594761029052126-1</unique-id>
<command>$XDG_DATA_HOME/scripts/nc-share-file.sh %f | xclip -i -selection &quot;clipboard&quot; &amp;&amp; notify-send -u low &quot;Upload complete&quot;</command>
<description>Uploads file to Nextcloud and copys the share link</description>
<patterns>*</patterns>
<audio-files/>
<image-files/>
<other-files/>
<text-files/>
<video-files/>
</action>
</actions> </actions>

View File

@@ -0,0 +1 @@
/home/niklas/.config/Code - OSS/User/keybindings.json

View File

@@ -0,0 +1 @@
/home/niklas/.config/Code - OSS/User/settings.json

View File

@@ -0,0 +1,9 @@
{
"extensionsGallery": {
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
"itemUrl": "https://marketplace.visualstudio.com/items",
"controlUrl": "",
"recommendationsUrl": ""
}
}

View File

@@ -0,0 +1,15 @@
ipc_socket = false
live_config_reload = false
[cursor]
unfocused_hollow = false
[cursor.style]
shape = "Beam"
[mouse]
hide_when_typing = true
[window]
opacity = 0.7
decorations = "None"
blur = true

View File

@@ -1,882 +0,0 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Import additional configuration files
#
# Imports are loaded in order, skipping all missing files, with the importing
# file being loaded last. If a field is already present in a previous import, it
# will be replaced.
#
# All imports must either be absolute paths starting with `/`, or paths relative
# to the user's home directory starting with `~/`.
#import:
# - /path/to/alacritty.yml
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.
#TERM: alacritty
window:
# Window dimensions (changes require restart)
#
# Number of lines/columns (not pixels) in the terminal. The number of columns
# must be at least `2`, while using a value of `0` for columns and lines will
# fall back to the window manager's recommended size.
#dimensions:
# columns: 0
# lines: 0
# Window position (changes require restart)
#
# Specified in number of pixels.
# If the position is not set, the window manager will handle the placement.
#position:
# x: 0
# y: 0
# Window padding (changes require restart)
#
# Blank space added around the window in pixels. This padding is scaled
# by DPI and the specified value is always added at both opposing sides.
#padding:
# x: 0
# y: 0
# Spread additional padding evenly around the terminal content.
#dynamic_padding: false
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
#
# Values for `decorations` (macOS only):
# - transparent: Title bar, transparent background and title bar buttons
# - buttonless: Title bar, transparent background and no title bar buttons
#decorations: full
# Background opacity
#
# Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque.
opacity: 0.9
# Startup Mode (changes require restart)
#
# Values for `startup_mode`:
# - Windowed
# - Maximized
# - Fullscreen
#
# Values for `startup_mode` (macOS only):
# - SimpleFullscreen
#startup_mode: Windowed
# Window title
#title: Alacritty
# Allow terminal applications to change Alacritty's window title.
#dynamic_title: true
# Window class (Linux/BSD only):
#class:
# Application instance name
#instance: Alacritty
# General application class
#general: Alacritty
# GTK theme variant (Linux/BSD only)
#
# Override the variant of the GTK theme. Commonly supported values are `dark`
# and `light`. Set this to `None` to use the default theme variant.
#gtk_theme_variant: None
#scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
#history: 10000
# Scrolling distance multiplier.
#multiplier: 3
# Font configuration
#font:
# Normal (roman) font face
#normal:
# Font family
#
# Default:
# - (macOS) Menlo
# - (Linux/BSD) monospace
# - (Windows) Consolas
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Regular
# Bold font face
#bold:
# Font family
#
# If the bold family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Bold
# Italic font face
#italic:
# Font family
#
# If the italic family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Italic
# Bold italic font face
#bold_italic:
# Font family
#
# If the bold italic family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Bold Italic
# Point size
#size: 11.0
# Offset is the extra space around each character. `offset.y` can be thought
# of as modifying the line spacing, and `offset.x` as modifying the letter
# spacing.
#offset:
# x: 0
# y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increasing `x` moves the glyph to the
# right, increasing `y` moves the glyph upward.
#glyph_offset:
# x: 0
# y: 0
# Thin stroke font rendering (macOS only)
#
# Thin strokes are suitable for retina displays, but for non-retina screens
# it is recommended to set `use_thin_strokes` to `false`.
#use_thin_strokes: true
# Use built-in font for box drawing characters.
#
# If `true`, Alacritty will use a custom built-in font for box drawing
# characters (Unicode points 2500 - 259f).
#
#builtin_box_drawing: true
# If `true`, bold text is drawn using the bright color variants.
#draw_bold_text_with_bright_colors: false
# Colors (Tomorrow Night)
#colors:
# Default colors
#primary:
# background: '#1d1f21'
# foreground: '#c5c8c6'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not
# present. If the bright foreground color is not set, or
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
# color will be used.
#dim_foreground: '#828482'
#bright_foreground: '#eaeaea'
# Cursor colors
#
# Colors which should be used to draw the terminal cursor.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#cursor:
# text: CellBackground
# cursor: CellForeground
# Vi mode cursor colors
#
# Colors for the cursor when the vi mode is active.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#vi_mode_cursor:
# text: CellBackground
# cursor: CellForeground
# Search colors
#
# Colors used for the search bar and match highlighting.
#search:
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#matches:
# foreground: '#000000'
# background: '#ffffff'
#focused_match:
# foreground: '#ffffff'
# background: '#000000'
#bar:
# background: '#c5c8c6'
# foreground: '#1d1f21'
# Keyboard regex hints
#hints:
# First character in the hint label
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#start:
# foreground: '#1d1f21'
# background: '#e9ff5e'
# All characters after the first one in the hint label
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#end:
# foreground: '#e9ff5e'
# background: '#1d1f21'
# Line indicator
#
# Color used for the indicator displaying the position in history during
# search and vi mode.
#
# By default, these will use the opposing primary color.
#line_indicator:
# foreground: None
# background: None
# Selection colors
#
# Colors which should be used to draw the selection area.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#selection:
# text: CellBackground
# background: CellForeground
# Normal colors
#normal:
# black: '#1d1f21'
# red: '#cc6666'
# green: '#b5bd68'
# yellow: '#f0c674'
# blue: '#81a2be'
# magenta: '#b294bb'
# cyan: '#8abeb7'
# white: '#c5c8c6'
# Bright colors
#bright:
# black: '#666666'
# red: '#d54e53'
# green: '#b9ca4a'
# yellow: '#e7c547'
# blue: '#7aa6da'
# magenta: '#c397d8'
# cyan: '#70c0b1'
# white: '#eaeaea'
# Dim colors
#
# If the dim colors are not set, they will be calculated automatically based
# on the `normal` colors.
#dim:
# black: '#131415'
# red: '#864343'
# green: '#777c44'
# yellow: '#9e824c'
# blue: '#556a7d'
# magenta: '#75617b'
# cyan: '#5b7d78'
# white: '#828482'
# Indexed Colors
#
# The indexed colors include all colors from 16 to 256.
# When these are not set, they're filled with sensible defaults.
#
# Example:
# `- { index: 16, color: '#ff00ff' }`
#
#indexed_colors: []
# Transparent cell backgrounds
#
# Whether or not `window.opacity` applies to all cell backgrounds or only to
# the default background. When set to `true` all cells will be transparent
# regardless of their background color.
#transparent_background_colors: false
# Bell
#
# The bell is rung every time the BEL control character is received.
#bell:
# Visual Bell Animation
#
# Animation effect for flashing the screen when the visual bell is rung.
#
# Values for `animation`:
# - Ease
# - EaseOut
# - EaseOutSine
# - EaseOutQuad
# - EaseOutCubic
# - EaseOutQuart
# - EaseOutQuint
# - EaseOutExpo
# - EaseOutCirc
# - Linear
#animation: EaseOutExpo
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
# disable the visual bell animation.
#duration: 0
# Visual bell animation color.
#color: '#ffffff'
# Bell Command
#
# This program is executed whenever the bell is rung.
#
# When set to `command: None`, no command will be executed.
#
# Example:
# command:
# program: notify-send
# args: ["Hello, World!"]
#
#command: None
selection:
# This string contains all characters that are used as separators for
# "semantic words" in Alacritty.
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
# When set to `true`, selected text will be copied to the primary clipboard.
save_to_clipboard: false
cursor:
# Cursor style
style:
# Cursor shape
#
# Values for `shape`:
# - ▇ Block
# - _ Underline
# - | Beam
shape: Beam
# Cursor blinking state
#
# Values for `blinking`:
# - Never: Prevent the cursor from ever blinking
# - Off: Disable blinking by default
# - On: Enable blinking by default
# - Always: Force the cursor to always blink
#blinking: Off
# Vi mode cursor style
#
# If the vi mode cursor style is `None` or not specified, it will fall back to
# the style of the active value of the normal cursor.
#
# See `cursor.style` for available options.
#vi_mode_style: None
# Cursor blinking interval in milliseconds.
#blink_interval: 750
# If this is `true`, the cursor will be rendered as a hollow box when the
# window is not focused.
#unfocused_hollow: true
# Thickness of the cursor relative to the cell width as floating point number
# from `0.0` to `1.0`.
#thickness: 0.15
# Live config reload (changes require restart)
#live_config_reload: true
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g.
# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
# shell.
#
# Default:
# - (macOS) /bin/bash --login
# - (Linux/BSD) user login shell
# - (Windows) powershell
#shell:
# program: /bin/bash
# args:
# - --login
# Startup directory
#
# Directory the shell is started in. If this is unset, or `None`, the working
# directory of the parent process will be used.
#working_directory: None
# Send ESC (\x1b) before characters when alt is pressed.
#alt_send_esc: true
# Offer IPC using `alacritty msg` (unix only)
#ipc_socket: true
#mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
#double_click: { threshold: 300 }
#triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
#hide_when_typing: false
# Regex hints
#
# Terminal hints can be used to find text in the visible part of the terminal
# and pipe it to other applications.
#hints:
# Keys used for the hint labels.
#alphabet: "jfkdls;ahgurieowpq"
# List with all available hints
#
# Each hint must have a `regex` and either an `action` or a `command` field.
# The fields `mouse`, `binding` and `post_processing` are optional.
#
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
#
# The `mouse.enabled` field controls if the hint should be underlined while
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
#
# If the `post_processing` field is set to `true`, heuristics will be used to
# shorten the match if there are characters likely not to be part of the hint
# (e.g. a trailing `.`). This is most useful for URIs.
#
# Values for `action`:
# - Copy
# Copy the hint's text to the clipboard.
# - Paste
# Paste the hint's text to the terminal or search.
# - Select
# Select the hint's text.
# - MoveViModeCursor
# Move the vi mode cursor to the beginning of the hint.
#enabled:
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
# command: xdg-open
# post_processing: true
# mouse:
# enabled: true
# mods: None
# binding:
# key: U
# mods: Control|Shift
# Mouse bindings
#
# Mouse bindings are specified as a list of objects, much like the key
# bindings further below.
#
# To trigger mouse bindings when an application running within Alacritty
# captures the mouse, the `Shift` modifier is automatically added as a
# requirement.
#
# Each mouse binding will specify a:
#
# - `mouse`:
#
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# - `action` (see key bindings for actions not exclusive to mouse mode)
#
# - Mouse exclusive actions:
#
# - ExpandSelection
# Expand the selection to the current mouse cursor location.
#
# And optionally:
#
# - `mods` (see key bindings)
#mouse_bindings:
# - { mouse: Right, action: ExpandSelection }
# - { mouse: Right, mods: Control, action: ExpandSelection }
# - { mouse: Middle, mode: ~Vi, action: PasteSelection }
# Key bindings
#
# Key bindings are specified as a list of objects. For example, this is the
# default paste binding:
#
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# Each key binding will specify a:
#
# - `key`: Identifier of the key pressed
#
# - A-Z
# - F1-F24
# - Key0-Key9
#
# A full list with available key codes can be found here:
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
#
# Instead of using the name of the keys, the `key` field also supports using
# the scancode of the desired key. Scancodes have to be specified as a
# decimal number. This command will allow you to display the hex scancodes
# for certain keys:
#
# `showkey --scancodes`.
#
# Then exactly one of:
#
# - `chars`: Send a byte sequence to the running application
#
# The `chars` field writes the specified string to the terminal. This makes
# it possible to pass escape sequences. To find escape codes for bindings
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
# of tmux. Note that applications use terminfo to map escape sequences back
# to keys. It is therefore required to update the terminfo when changing an
# escape sequence.
#
# - `action`: Execute a predefined action
#
# - ToggleViMode
# - SearchForward
# Start searching toward the right of the search origin.
# - SearchBackward
# Start searching toward the left of the search origin.
# - Copy
# - Paste
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollHalfPageUp
# - ScrollHalfPageDown
# - ScrollLineUp
# - ScrollLineDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# Remove the terminal's scrollback history.
# - Hide
# Hide the Alacritty window.
# - Minimize
# Minimize the Alacritty window.
# - Quit
# Quit Alacritty.
# - ToggleFullscreen
# - SpawnNewInstance
# Spawn a new instance of Alacritty.
# - CreateNewWindow
# Create a new Alacritty window from the current process.
# - ClearLogNotice
# Clear Alacritty's UI warning and error notice.
# - ClearSelection
# Remove the active selection.
# - ReceiveChar
# - None
#
# - Vi mode exclusive actions:
#
# - Open
# Perform the action of the first matching hint under the vi mode cursor
# with `mouse.enabled` set to `true`.
# - ToggleNormalSelection
# - ToggleLineSelection
# - ToggleBlockSelection
# - ToggleSemanticSelection
# Toggle semantic selection based on `selection.semantic_escape_chars`.
#
# - Vi mode exclusive cursor motion actions:
#
# - Up
# One line up.
# - Down
# One line down.
# - Left
# One character left.
# - Right
# One character right.
# - First
# First column, or beginning of the line when already at the first column.
# - Last
# Last column, or beginning of the line when already at the last column.
# - FirstOccupied
# First non-empty cell in this terminal row, or first non-empty cell of
# the line when already at the first cell of the row.
# - High
# Top of the screen.
# - Middle
# Center of the screen.
# - Low
# Bottom of the screen.
# - SemanticLeft
# Start of the previous semantically separated word.
# - SemanticRight
# Start of the next semantically separated word.
# - SemanticLeftEnd
# End of the previous semantically separated word.
# - SemanticRightEnd
# End of the next semantically separated word.
# - WordLeft
# Start of the previous whitespace separated word.
# - WordRight
# Start of the next whitespace separated word.
# - WordLeftEnd
# End of the previous whitespace separated word.
# - WordRightEnd
# End of the next whitespace separated word.
# - Bracket
# Character matching the bracket at the cursor's location.
# - SearchNext
# Beginning of the next match.
# - SearchPrevious
# Beginning of the previous match.
# - SearchStart
# Start of the match to the left of the vi mode cursor.
# - SearchEnd
# End of the match to the right of the vi mode cursor.
#
# - Search mode exclusive actions:
# - SearchFocusNext
# Move the focus to the next search match.
# - SearchFocusPrevious
# Move the focus to the previous search match.
# - SearchConfirm
# - SearchCancel
# - SearchClear
# Reset the search regex.
# - SearchDeleteWord
# Delete the last word in the search regex.
# - SearchHistoryPrevious
# Go to the previous regex in the search history.
# - SearchHistoryNext
# Go to the next regex in the search history.
#
# - macOS exclusive actions:
# - ToggleSimpleFullscreen
# Enter fullscreen without occupying another space.
#
# - Linux/BSD exclusive actions:
#
# - CopySelection
# Copy from the selection buffer.
# - PasteSelection
# Paste from the selection buffer.
#
# - `command`: Fork and execute a specified command plus arguments
#
# The `command` field must be a map containing a `program` string and an
# `args` array of command line parameter strings. For example:
# `{ program: "alacritty", args: ["-e", "vttest"] }`
#
# And optionally:
#
# - `mods`: Key modifiers to filter binding actions
#
# - Command
# - Control
# - Option
# - Super
# - Shift
# - Alt
#
# Multiple `mods` can be combined using `|` like this:
# `mods: Control|Shift`.
# Whitespace and capitalization are relevant and must match the example.
#
# - `mode`: Indicate a binding for only specific terminal reported modes
#
# This is mainly used to send applications the correct escape sequences
# when in different modes.
#
# - AppCursor
# - AppKeypad
# - Search
# - Alt
# - Vi
#
# A `~` operator can be used before a mode to apply the binding whenever
# the mode is *not* active, e.g. `~Alt`.
#
# Bindings are always filled by default, but will be replaced when a new
# binding with the same triggers is defined. To unset a default binding, it can
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
# a no-op if you do not wish to receive input characters for that binding.
#
# If the same trigger is assigned to multiple actions, all of them are executed
# in the order they were defined in.
#key_bindings:
#- { key: Paste, action: Paste }
#- { key: Copy, action: Copy }
#- { key: L, mods: Control, action: ClearLogNotice }
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
# Vi Mode
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
#- { key: Y, mode: Vi|~Search, action: Copy }
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
#- { key: Return, mode: Vi|~Search, action: Open }
#- { key: K, mode: Vi|~Search, action: Up }
#- { key: J, mode: Vi|~Search, action: Down }
#- { key: H, mode: Vi|~Search, action: Left }
#- { key: L, mode: Vi|~Search, action: Right }
#- { key: Up, mode: Vi|~Search, action: Up }
#- { key: Down, mode: Vi|~Search, action: Down }
#- { key: Left, mode: Vi|~Search, action: Left }
#- { key: Right, mode: Vi|~Search, action: Right }
#- { key: Key0, mode: Vi|~Search, action: First }
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
#- { key: W, mode: Vi|~Search, action: SemanticRight }
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
#- { key: N, mode: Vi|~Search, action: SearchNext }
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
# Search Mode
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
#- { key: Escape, mode: Search, action: SearchCancel }
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
#- { key: U, mods: Control, mode: Search, action: SearchClear }
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
#- { key: Down, mode: Search, action: SearchHistoryNext }
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
# (Windows, Linux, and BSD only)
#- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
#- { key: C, mods: Control|Shift, action: Copy }
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
#- { key: Insert, mods: Shift, action: PasteSelection }
#- { key: Key0, mods: Control, action: ResetFontSize }
#- { key: Equals, mods: Control, action: IncreaseFontSize }
#- { key: Plus, mods: Control, action: IncreaseFontSize }
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
#- { key: Minus, mods: Control, action: DecreaseFontSize }
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
# (Windows only)
#- { key: Return, mods: Alt, action: ToggleFullscreen }
# (macOS only)
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
#- { key: Key0, mods: Command, action: ResetFontSize }
#- { key: Equals, mods: Command, action: IncreaseFontSize }
#- { key: Plus, mods: Command, action: IncreaseFontSize }
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
#- { key: Minus, mods: Command, action: DecreaseFontSize }
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
#- { key: V, mods: Command, action: Paste }
#- { key: C, mods: Command, action: Copy }
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
#- { key: H, mods: Command, action: Hide }
#- { key: H, mods: Command|Alt, action: HideOtherApplications }
#- { key: M, mods: Command, action: Minimize }
#- { key: Q, mods: Command, action: Quit }
#- { key: W, mods: Command, action: Quit }
#- { key: N, mods: Command, action: SpawnNewInstance }
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
#debug:
# Display the time it takes to redraw each frame.
#render_timer: false
# Keep the log file after quitting Alacritty.
#persistent_logging: false
# Log level
#
# Values for `log_level`:
# - Off
# - Error
# - Warn
# - Info
# - Debug
# - Trace
#log_level: Warn
# Print all received window events.
#print_events: false
# Highlight window damage information.
#highlight_damage: false

33
.config/eww/eww.scss Normal file
View File

@@ -0,0 +1,33 @@
@import "/home/niklas/.cache/wal/colors.scss";
$bg: $background;
$fg: $foreground;
$border: $color2;
$text: $color6;
$focus: $color3;
$hight: 1.5rem;
* {
all: unset;
}
@mixin pill{
border: 1px solid $border;
border-radius: 24;;
padding: 0.1rem 0.5rem;
margin: 0 0.5rem;
background-color: $focus;
min-height: $hight;
}
.pill{
@include pill;
}
@import "modules/bar/bar.scss";
@import "modules/clock/clock.scss";
@import "modules/playerctl/playerctl.scss";
@import "modules/volume/volume.scss";
@import "modules/workspace/workspace.scss";
@import "modules/notifications/notifications.scss"

20
.config/eww/eww.yuck Normal file
View File

@@ -0,0 +1,20 @@
(defwindow bar
:monitor 0
:geometry (geometry :x "0%"
:y "0%"
:width "100%"
:height "10px"
:anchor "top center")
:stacking "fg"
:exclusive true
:namepspace "eww"
(bar)
)
(include "modules/bar/bar.yuck")
(include "modules/clock/clock.yuck")
(include "modules/playerctl/playerctl.yuck")
(include "modules/volume/volume.yuck")
(include "modules/workspace/workspace.yuck")
(include "modules/notifications/notifications.yuck")

View File

@@ -0,0 +1,6 @@
.bar-widget {
background-color: $bg;
font-size: 16px;
color: $text;
padding: 0.2rem 0;
}

View File

@@ -0,0 +1,33 @@
(defwidget bar []
(box
:class "bar-widget"
:orientation "h"
:space-evenly true
(box
:orientation "h"
:space-evenly false
:halign "start"
(workspaces)
)
(box
:orientation "h"
:space-evenly false
:halign "center"
(playerctl)
)
(box
:orientation "h"
:space-evenly false
:halign "end"
(volume_slider)
(clock)
(notifications)
)
)
)

View File

@@ -0,0 +1,3 @@
.clock {
@include pill;
}

View File

@@ -0,0 +1,14 @@
(defpoll time
:interval "1s"
:initial "0"
"date +%H:%M"
)
(defwidget clock []
(label
:class "clock"
:text {time}
)
)

View File

@@ -0,0 +1,3 @@
.notifications {
@include pill;
}

View File

@@ -0,0 +1,18 @@
(deflisten swaync
:initial "{}"
"swaync-client -swb"
)
(defwidget notifications []
(button
:class "notifications"
:onclick "swaync-client -t -sw"
:onrightclick "swaync-client -d -sw"
(label
:text "${swaync.text}"
)
)
)

View File

@@ -0,0 +1,7 @@
#!/bin/bash
if [[ $1 == "down" ]]; then
playerctl --player=spotify,%any volume 0.05-
elif [[ $1 == "up" ]]; then
playerctl --player=spotify,%any volume 0.05+
fi

View File

@@ -0,0 +1,3 @@
.playerctl {
@include pill;
}

View File

@@ -0,0 +1,20 @@
(deflisten playerctl
:initial ""
"playerctl --player=spotify,%any -f '{{title}} - {{artist}}' metadata -F"
)
(defwidget playerctl []
(eventbox
:onscroll "modules/playerctl/playerctl-volume.sh {}"
:onmiddleclick "hyprctl dispatch togglespecialworkspace spotify"
:onclick "playerctl --player=spotify,%any play-pause"
:onrightclick "playerctl --player=spotify,%any next"
(label
:class "playerctl"
:text {playerctl}
)
)
)

View File

@@ -0,0 +1,8 @@
#!/bin/bash
if [[ $1 == "up" ]]; then
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
elif [[ $1 == "down" ]]; then
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
fi

View File

@@ -0,0 +1,3 @@
#!/bin/bash
wpctl set-volume @DEFAULT_AUDIO_SINK@ $1%

View File

@@ -0,0 +1,23 @@
.volume {
@include pill;
}
.volume_slider {
min-width: 6rem;
trough,
highlight {
min-height: 0.5rem;
border-radius: 25px;
border: 1px solid $border;
}
trough {
background-color: $bg;
}
highlight {
background-color: $focus;
}
}

View File

@@ -0,0 +1,8 @@
#!/bin/bash
wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print int($2 * 100)}'
pactl subscribe | rg --line-buffered "on sink" | while read -r _; do
wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print int($2 * 100)}'
done

View File

@@ -0,0 +1,57 @@
(deflisten volume
:initial 100
"modules/volume/volume.sh"
)
(defwidget volume []
(eventbox
:onscroll "modules/volume/scroll-volume.sh {}"
(label
:class "volume"
:text "${volume}%"
)
)
)
(defvar vol_reveal false)
(defwidget volume_slider []
(eventbox
:onhover "eww update vol_reveal=true"
:onhoverlost "eww update vol_reveal=false"
:onscroll "modules/volume/scroll-volume.sh {}"
(box
:space-evenly false
:orientation "h"
:spacing "3"
(button
:class "pill"
(label
:text "${volume}%"
)
)
(revealer
:transition "slideleft"
:reveal vol_reveal
(scale
:class "volume_slider"
:value volume
:orientation "h"
:min 0
:max 101
:onchange "modules/volume/set-volume.sh {}"
)
)
)
)
)

View File

@@ -0,0 +1,10 @@
#!/bin/bash
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | sed -u -n -e '/^workspace>>/ s/^workspace>>//p' -e '/^focusedmon>>/ s/^focusedmon>>//p'
#socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
# stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'

View File

@@ -0,0 +1,17 @@
#!/bin/bash
direction=$1
current=$2
exit 0 # For the time being this script only exist to keep current_workspace from being lazy
if [[ $direction == "down" ]]; then
target=$(($current+1))
if [[ $target == 11 ]]; then
exit 0
fi
hyprctl dispatch workspace $target
elif [[ $direction == "up" ]]; then
target=$(($current-1))
hyprctl dispatch workspace $target
fi

View File

@@ -0,0 +1,17 @@
.workspaces {
margin-left: 0.2rem;
min-height: $hight;
border: 1px solid $border;
border-radius: 24px;
.workspace {
padding: 0 0.5rem;
border-radius: 24px;
}
.active {
background-color: $focus;
}
}

View File

@@ -0,0 +1,33 @@
(deflisten workspaces
:initial "[]"
"modules/workspace/workspaces.sh"
)
(deflisten current_workspace
:initial "1"
"modules/workspace/get-active-workspace.sh"
)
(defwidget workspaces []
(eventbox
:onscroll "modules/workspace/scroll-current-workspace.sh {} ${current_workspace}"
(box
:orientation "h"
:space-evenly false
:class "workspaces"
:hexpand true
(for workspace in workspaces
(button
:class "workspace ${current_workspace == workspace.id ? "active" : ""}"
:onclick "hyprctl dispatch workspace ${workspace.id}"
"${workspace.id}"
)
)
)
)
)

View File

@@ -0,0 +1,9 @@
#!/bin/bash
CMD="sort_by(.id) | [ .[] | select(.id > 0)]"
hyprctl workspaces -j | jq -c "$CMD"
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
hyprctl workspaces -j | jq -c "$CMD"
done

View File

@@ -1,20 +1,31 @@
[user]
name = Djeeberjr
email = djeeberjr@gmail.com
[filter "lfs"] [filter "lfs"]
clean = git-lfs clean -- %f clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f smudge = git-lfs smudge -- %f
process = git-lfs filter-process process = git-lfs filter-process
required = true required = true
[init] [init]
defaultBranch = master defaultBranch = master
[core] [core]
excludesFile = ~/.config/gitignore excludesFile = ~/.config/git/gitignore
[pager] [pager]
diff = delta diff = delta
log = delta log = delta
reflog = delta reflog = delta
show = delta show = delta
blame = delta
[delta]
side-by-side = true
dark = true
[interactive] [interactive]
diffFilter = delta --color-only diffFilter = delta --color-only
[user]
useconfigonly = true
[includeIf "hasconfig:remote.*.url:**/*git.kapelle.org*/**"]
path = ~/.config/git/private.inc

2
.config/git/gitignore Normal file
View File

@@ -0,0 +1,2 @@
/ignore
/.vscode

6
.config/git/private.inc Normal file
View File

@@ -0,0 +1,6 @@
[user]
name = Niklas Kapelle
email = niklas@kapelle.org
signingkey = 4EB651B36D841D16
[commit]
gpgsign = true

3
.config/git/public.inc Normal file
View File

@@ -0,0 +1,3 @@
[user]
name = Djeeberjr
email = djeeberjr@gmail.com

View File

@@ -1 +0,0 @@
/ignore

View File

@@ -1 +1,3 @@
gtk-theme-name = "Adapta-Nokto" gtk-application-prefer-dark-theme = true
gtk-icon-theme-name = "Adwaita"
gtk-theme-name = "Orchis"

View File

@@ -1,2 +1,4 @@
[Settings] [Settings]
gtk-theme-name = Adapta-Nokto gtk-application-prefer-dark-theme=true
gtk-icon-theme-name=Adwaita
gtk-theme-name=Orchis

7
.config/hypr/colors.conf Normal file
View File

@@ -0,0 +1,7 @@
# https://www.nordtheme.com/docs/colors-and-palettes
$color0 = rgb(2e3440)
$color1 = rgb(3b4252)
$color2 = rgb(434c5e)
$color3 = rgb(4c566a)

View File

@@ -1,13 +1,13 @@
monitor=,preferred,auto,auto monitor=,preferred,auto,auto
# Load colors # Load colors
source = ~/.config/hypr/nord-colors.conf source = ~/.config/hypr/colors.conf
input { input {
kb_layout = us kb_layout = us
kb_variant = kb_variant =
kb_model = kb_model =
kb_options = kb_options = compose:ralt,caps:escape
kb_rules = kb_rules =
numlock_by_default = true numlock_by_default = true
@@ -44,9 +44,7 @@ decoration {
} }
misc { misc {
# disable_hyprland_logo = true force_default_wallpaper = 0
# disable_splash_rendering = true
force_hypr_chan = true
animate_manual_resizes = true animate_manual_resizes = true
animate_mouse_windowdragging = true animate_mouse_windowdragging = true
@@ -75,7 +73,7 @@ dwindle {
} }
master { master {
new_is_master = true new_status=master
} }
gestures { gestures {
@@ -87,7 +85,8 @@ binds {
allow_workspace_cycles = true allow_workspace_cycles = true
} }
device:zly-zelotes-game-mouse { device {
name = moji-1k-nrf-receiver
sensitivity = -1 sensitivity = -1
} }
@@ -96,6 +95,9 @@ device:zly-zelotes-game-mouse {
layerrule = noanim,rofi layerrule = noanim,rofi
windowrulev2 = workspace special:spotify silent, class:^(Spotify)$ windowrulev2 = workspace special:spotify silent, class:^(Spotify)$
windowrulev2 = workspace special:term silent, class:^(scratchpad)$ windowrulev2 = workspace special:term silent, class:^(scratchpad)$
windowrulev2 = workspace 7 silent, class:^(TeamSpeak 3)$
windowrulev2 = workspace 7 silent, class:^(discord)$
windowrulev2 = workspace 1 silent, class:^(firefox)$
# Env # Env
env = MOZ_ENABLE_WAYLAND,1 env = MOZ_ENABLE_WAYLAND,1
@@ -107,7 +109,7 @@ env = XCURSOR_SIZE=24
# Autostart # Autostart
exec-once = waybar exec-once = waybar
exec-once = swaync exec-once = swaync
exec-once = hyprpaper exec-once = swww init
exec-once = swayidle -w exec-once = swayidle -w
exec-once = alacritty --class scratchpad exec-once = alacritty --class scratchpad
@@ -123,9 +125,9 @@ bind = $mainModShift, E, exec, $XDG_CONFIG_HOME/rofi/powermenu.sh
bind = $mainModShift, Space, togglefloating bind = $mainModShift, Space, togglefloating
bind = $mainMod, D, exec, rofi -show drun -theme $XDG_CONFIG_HOME/rofi/launcher.rasi bind = $mainMod, D, exec, rofi -show drun -theme $XDG_CONFIG_HOME/rofi/launcher.rasi
bind = $mainMod, M, exec, $XDG_CONFIG_HOME/waybar/mute-toggle.sh bind = $mainMod, M, exec, $XDG_CONFIG_HOME/waybar/mute-toggle.sh
bind = $mainMod, J, togglesplit, # dwindle #bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F, fullscreen bind = $mainMod, F, fullscreen
bind =, Print, exec, $XDG_DATA_HOME/scripts/share-screenshot.sh bind =, Print, exec, $XDG_DATA_HOME/scripts/save-screenshot.sh
# Audio buttons # Audio buttons
binde =, XF86AudioRaiseVolume, exec, playerctl --player=spotify,%any volume 0.05+ binde =, XF86AudioRaiseVolume, exec, playerctl --player=spotify,%any volume 0.05+
@@ -140,6 +142,13 @@ bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d bind = $mainMod, down, movefocus, d
# Move focus with mainMod + hjkl
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
# Move windows with mainMod + Shift + arrow # Move windows with mainMod + Shift + arrow
bind = $mainModShift, left, movewindow, l bind = $mainModShift, left, movewindow, l
bind = $mainModShift, right, movewindow,r bind = $mainModShift, right, movewindow,r

View File

@@ -0,0 +1,6 @@
gui:
nerdFontsVersion: "3"
git:
paging:
colorArg: always
pager: delta --dark --paging=never --line-numbers --hyperlinks --hyperlinks-file-link-format="lazygit-edit://{path}:{line}"

View File

@@ -1,79 +0,0 @@
# Run: makepkg -s
pkgname=metapkg
pkgver=1.0
pkgrel=1
pkgdesc="Meta package for installing all my packages. Does not include AUR packages or hardware specific packages"
arch=('any')
url="https://git.kapelle.org/niklas/dotfiles-remastered"
depends=(
# Desktop apps
alacritty
code
# code-features
# code-marketplace
firefox
gimp
imv
mpv
# onlyoffice-bin
pavucontrol
thunar
thunderbird
# DE
greetd-tuigreet
hyprland
hyprpaper
libnotify
pipewire-alsa
pipewire-jack
pipewire-pulse
gvfs
playerctl
# rofi-lbonn-wayland-git
# swaync
# waybar-hyperland-git
xdg-desktop-portal-hyprland
# CLI
bat
duf
entr
exa
fzf
git-delta
htop
jq
neovim
# oh-my-zsh-git
pkgfile
pulsemixer
rsync
sl
trash-cli
zsh-autosuggestions
zsh-completions
zsh-syntax-highlighting
zsh-theme-powerlevel10k
# system
# yay
zip
unzip
arch-wiki-docs
docker
flatpak
# game-devices-udev
gamemode
git
networkmanager
ntfs-3g
ttf-hack
ttf-hack-nerd
)
optdepends=()

View File

@@ -0,0 +1,146 @@
#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
version = 2
final_space = true
disable_notice = true
[palette]
status_success = "#43f716"
status_failure = "#f72916"
white = "#FFFFFF"
path = "green"
git_tooltip = "red"
go_tooltip = "green"
node_tooltip = "green"
docker = "blue"
kube = "yellow"
[[blocks]]
alignment = "left"
type = "prompt"
# SSH
[[blocks.segments]]
type = "session"
template = "{{ if .SSHSession}}󰢹 {{ end }}"
# Path
[[blocks.segments]]
type = "path"
background = "p:path"
foreground = "p:white"
style = "diamond"
leading_diamond = ""
trailing_diamond = ""
template = " {{ .Path }} "
[blocks.segments.properties]
style = "full"
home_icon = "~"
[[blocks]]
alignment = "right"
type = "prompt"
# Docker context
[[blocks.segments]]
type = "docker"
style = "diamond"
foreground = "p:white"
background = "p:docker"
leading_diamond = ""
trailing_diamond = ""
template = " {{ .Context }}"
# kubectl context
[[blocks.segments]]
type = "kubectl"
style = "diamond"
foreground = "p:white"
background = "p:kube"
leading_diamond = ""
trailing_diamond = ""
template = "󱃾 {{.Context}}{{if .Namespace}} :: {{.Namespace}}{{end}} "
[[blocks]]
alignment = "left"
type = "prompt"
newline = true
# Newline prompt
[[blocks.segments]]
type = "status"
style = "plain"
foreground = "p:status_success"
foreground_templates = [
"{{ if .Error }}p:status_failure{{ end }}",
"{{ if not .Error}}p:status_success{{ end }}"
]
template = ""
[blocks.segments.properties]
always_enabled = true
[transient_prompt]
foreground = "p:status_success"
template = " "
# Git
[[tooltips]]
type = "git"
tips = [ "git", "g" ]
style = "diamond"
foreground = "p:white"
background = "p:git_tooltip"
leading_diamond = ""
trailing_diamond = ""
template = "{{ url .HEAD .UpstreamURL }}{{ if .UpstreamIcon }} {{.UpstreamIcon}} {{ end }}{{ if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}"
[tooltips.properties]
fetch_status = true
fetch_upstream_icon = true
branch_icon = " "
branch_identical_icon = " "
branch_ahead_icon = "󰳡 "
branch_behind_icon = "󰳛 "
branch_gone_icon = " "
[tooltips.properties.upstream_icons]
"git.kapelle.org" = " "
# Go
[[tooltips]]
type = "go"
tips = [ "go" ]
style = "diamond"
foreground = "p:white"
background = "p:go_tooltip"
leading_diamond = ""
trailing_diamond = ""
template = " {{ .Major }}.{{ .Minor }}"
[tooltips.properties]
cache_version = true
# Rust
[[tooltips]]
type = "rust"
tips = [ "rustc", "cargo", "rustup" ]
style = "diamond"
foreground = "p:white"
background = "p:go_tooltip"
leading_diamond = ""
trailing_diamond = ""
template = " {{ .Full }}"
[tooltips.properties]
cache_version = true
# Node
[[tooltips]]
type = "node"
tips = [ "node", "npm" ]
style = "diamond"
foreground = "p:white"
background = "p:node_tooltip"
leading_diamond = ""
trailing_diamond = ""
template = "󰎙 {{ .Full }}"
[tooltips.properties]
cache_version = true

View File

@@ -2,7 +2,7 @@
ROFI_CONFIG_DIR="$XDG_CONFIG_HOME/rofi/" ROFI_CONFIG_DIR="$XDG_CONFIG_HOME/rofi/"
UPTIME="`uptime -p | sed -e 's/up //g'`" UPTIME="$(uptime | awk -F'( |,|:)+' '{print $6,$7",",$8,"hours,",$9,"minutes."}')"
SHUTDOWN="" SHUTDOWN=""
RESTART="" RESTART=""
@@ -37,8 +37,8 @@ case ${selection} in
fi fi
;; ;;
$WINDOWS) $WINDOWS)
# TODO boot-windows
# grub-set-default systemctl reboot
;; ;;
esac esac

View File

@@ -0,0 +1,5 @@
@define-color bg {background};
@define-color fg {foreground};
@define-color focus {color3};
@define-color text {color6};
@define-color border {color2};

View File

@@ -0,0 +1 @@
@import url("/home/niklas/.cache/wal/waybar.css");

View File

@@ -1,9 +1,10 @@
{ {
"height": 30, // Waybar height (to be removed for auto height) "height": 30, // Waybar height (to be removed for auto height)
"spacing": 4, // Gaps between modules (4px) "spacing": 4, // Gaps between modules (4px)
"layer":"top",
"modules-left": ["hyprland/workspaces"], "modules-left": ["hyprland/workspaces"],
"modules-center": [], "modules-center": [],
"modules-right": ["custom/playerctl", "idle_inhibitor", "pulseaudio", "clock", "tray","custom/swaync"], "modules-right": ["group/audio", "idle_inhibitor", "group/system"],
"idle_inhibitor": { "idle_inhibitor": {
"format": "{icon}", "format": "{icon}",
"format-icons": { "format-icons": {
@@ -11,6 +12,21 @@
"deactivated": "" "deactivated": ""
} }
}, },
"group/audio":{
"orientation": "horizontal",
"modules":[
"custom/playerctl",
"pulseaudio"
]
},
"group/system":{
"orientation": "horizontal",
"modules":[
"clock",
"tray",
"custom/swaync" ]
},
"tray": { "tray": {
// "icon-size": 21, // "icon-size": 21,
"spacing": 10 "spacing": 10
@@ -40,7 +56,7 @@
"on-click-right":"playerctl --player=spotify,%any next", "on-click-right":"playerctl --player=spotify,%any next",
"on-scroll-up":"playerctl --player=spotify,%any volume 0.05+", "on-scroll-up":"playerctl --player=spotify,%any volume 0.05+",
"on-scroll-down":"playerctl --player=spotify,%any volume 0.05-", "on-scroll-down":"playerctl --player=spotify,%any volume 0.05-",
"exec": "playerctl --player=spotify,%any -f '{{title}} - {{artist}}' metadata -F 2>/dev/null", "exec": "playerctl --player=spotify,%any -f '{{title}} - {{artist}}' metadata -F | sed -u 's/&/\\&amp;/g' 2>/dev/null",
"max-length":50, "max-length":50,
"tooltip":false "tooltip":false
}, },
@@ -61,8 +77,7 @@
"exec-if": "which swaync-client", "exec-if": "which swaync-client",
"exec": "swaync-client -swb", "exec": "swaync-client -swb",
"on-click": "swaync-client -t -sw", "on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d -sw", "on-click-right": "swaync-client -d -sw"
"escape": true
} }
} }

View File

@@ -1,296 +1,120 @@
@import url("colors.css");
* { * {
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
font-size: 13px; font-size: 13px;
/*border-radius: 24px;*/
min-height: 0;
} }
window#waybar { window#waybar {
background-color: rgba(43, 48, 59, 0.5); background-color: @bg;
border-bottom: 3px solid rgba(100, 114, 125, 0.5); /*border-radius: 24px;*/ /* Have bar itself rounded */
color: #ffffff; color: @text;
transition-property: background-color;
transition-duration: .5s;
} }
window#waybar.hidden { window#waybar.hidden {
opacity: 0.2; opacity: 0.2;
} }
/* /*--- Workspaces ---*/
window#waybar.empty { #workspaces{
background-color: transparent; border-radius: 24px;
} border: solid 1px @border;
window#waybar.solo { margin-top: 2px;
background-color: #FFFFFF; margin-bottom: 2px;
}
*/
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ffffff;
} }
#workspaces button { #workspaces button {
border: none;
border-radius: 24px;
padding: 0 5px; padding: 0 5px;
background-color: transparent; background-color: transparent;
color: #ffffff; color: @text;
transition: all 0.3s ease-in-out;
} }
#workspaces button:hover { #workspaces button:hover {
background: rgba(0, 0, 0, 0.2); background: @fg;
/* Disble clicking effect */
box-shadow: inherit;
text-shadow: inherit;
} }
#workspaces button.focused { #workspaces button.focused {
background-color: #64727D; background-color: @focus;
box-shadow: inset 0 -3px #ffffff;
} }
#workspaces button.urgent { #workspaces button.urgent {
background-color: #eb4d4b; background-color: #eb4d4b;
} }
#mode { #workspaces button.active{
background-color: #64727D; background-color: @focus;
border-bottom: 3px solid #ffffff; transition: all 0.3s ease-in-out;
} }
/*--- Groups ---*/
#audio, #system, #idle_inhibitor {
border: solid 1px @border;
border-radius: 24px;
margin-top: 2px;
margin-bottom: 2px;
background-color: @focus;
}
/*--- Each module ---*/
#custom-playerctl,
#custom-swaync,
#clock, #clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio, #pulseaudio,
#wireplumber, #wireplumber,
#custom-media, #custom-media,
#tray, #tray,
#mode, #mode,
#idle_inhibitor, #idle_inhibitor{
#scratchpad, color: @text;
#mpd {
padding: 0 10px;
color: #ffffff; padding-left: 6px;
padding-right: 6px;
} }
#window,
#workspaces { .modules-left{
margin: 0 4px; padding-left: 3px;
}
.modules-right{
padding-right: 3px;
} }
/* If workspaces is the leftmost module, omit left margin */ /* If workspaces is the leftmost module, omit left margin */
/*
.modules-left > widget:first-child > #workspaces { .modules-left > widget:first-child > #workspaces {
margin-left: 0; margin-left: 0;
} }
*/
/* If workspaces is the rightmost module, omit right margin */ /* If workspaces is the rightmost module, omit right margin */
/*
.modules-right > widget:last-child > #workspaces { .modules-right > widget:last-child > #workspaces {
margin-right: 0; margin-right: 0;
} }
*/
#clock {
background-color: #64727D;
}
#battery {
background-color: #ffffff;
color: #000000;
}
#battery.charging, #battery.plugged {
color: #ffffff;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #2ecc71;
color: #000000;
}
#memory {
background-color: #9b59b6;
}
#disk {
background-color: #964B00;
}
#backlight {
background-color: #90b1b1;
}
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}
#pulseaudio {
background-color: #f1c40f;
color: #000000;
}
#pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45;
}
#wireplumber {
background-color: #fff0f5;
color: #000000;
}
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
background-color: #2980b9;
}
#tray > .passive { #tray > .passive {
-gtk-icon-effect: dim; -gtk-icon-effect: dim;
} }
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
background-color: transparent;
}
#custom-playerctl {
padding: 0 10px;
background-color: #1DB954; /*Spotify green*/
}
#custom-swaync { #custom-swaync {
font-family: "NotoSansMono Nerd Font"; font-family: "NotoSansMono Nerd Font";
padding: 0 10px; padding: 0 10px;
color: #ffffff; color: @text;
font-size: 17px; font-size: 17px;
} }
#workspaces button.active{
background-color: #4B4952;
}

View File

@@ -1 +0,0 @@
../share/scripts/arch-wiki.sh

View File

@@ -1 +0,0 @@
../share/scripts/del-pic.sh

View File

@@ -1 +0,0 @@
../share/scripts/macho.sh

View File

@@ -1 +0,0 @@
../share/scripts/nc-share.sh

View File

@@ -1 +0,0 @@
../share/scripts/pacman-browse.sh

View File

@@ -1 +0,0 @@
../share/scripts/pacman-install.sh

View File

@@ -1,2 +1,2 @@
[Context] [Context]
filesystems=!xdg-run/app/com.discordapp.Discord;!xdg-documents;!xdg-desktop;xdg-config/MangoHud:ro;/srv/sdb2/home/niklas filesystems=!xdg-run/app/com.discordapp.Discord;!xdg-desktop;!xdg-documents;/srv/bulk/home/niklas;xdg-config/MangoHud:ro

View File

@@ -0,0 +1,2 @@
[Context]
filesystems=/srv/bulk/home/niklas/games

View File

@@ -1,5 +1,5 @@
[Context] [Context]
filesystems=!xdg-music;!xdg-pictures;!xdg-run/app/com.discordapp.Discord;/run/user/1000/pipewire-0;xdg-config/MangoHud:ro;/srv/sdb2/home/niklas filesystems=!xdg-music;!xdg-pictures;!xdg-run/app/com.discordapp.Discord;/srv/bulk/home/niklas;xdg-config/MangoHud:ro;/run/user/1000/pipewire-0
[Environment] [Environment]
MANGOHUD=1 MANGOHUD=1

View File

@@ -1,5 +1,5 @@
[Context] [Context]
filesystems=!/run/media;!/media;/srv/sdb2/home/niklas;!home filesystems=!/run/media;!/media;/srv/bulk/home/niklas;!home
[Session Bus Policy] [Session Bus Policy]
org.gnome.Mutter.DisplayConfig=none org.gnome.Mutter.DisplayConfig=none

View File

@@ -1,24 +0,0 @@
#!/usr/bin/env sh
# required packages:
# - fzf
# - arch-wiki-docs
set -e
DOC_DIR="/usr/share/doc/arch-wiki/html/en/"
cd "$DOC_DIR"
selected=$(find . -type f | cut -c3- | rev | cut -c6- | rev | tr _ ' ' | fzf -q "$1")
selected_file=$(echo "$selected" | tr ' ' _ | awk -v var="$DOC_DIR" '{print var $0 ".html"}')
xdg-open "$selected_file"
#if [[ $# -eq 0 ]]; then
# # No arguments supplied
# xdg-open "$DOC_DIR"
#else
# grep -rwc '/usr/share/doc/arch-wiki/html/en/' -e 'xorg' | grep -v ":0" | awk -F":" '{print $2,$1}' | sort
#fi

View File

@@ -0,0 +1,57 @@
#!/usr/bin/env sh
# Thanks ChatGPT
# Define your projects directory
PROJECTS_DIR="$HOME/projects/"
# Counter for total directories checked
total_dirs_checked=0
# Counter for projects with unpushed commits
unpushed_projects=0
# Change directory to your projects directory
cd "$PROJECTS_DIR" || { echo "Directory not found"; exit 1; }
# Loop through each subdirectory
for dir in */; do
# Increment the total directories counter
((total_dirs_checked++))
# Move into the project directory
cd "$dir" || continue
# Check if it's a git repository
if [ -d ".git" ]; then
# Get the name of the current branch, silencing errors
current_branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
# Check if the command failed or if it's not a branch
if [ $? -ne 0 ] || [ -z "$current_branch" ]; then
cd ..
continue
fi
# Check if the branch has an upstream set
if [ -z "$(git rev-parse --abbrev-ref --symbolic-full-name "$current_branch@{u}" 2>/dev/null)" ]; then
#echo "No upstream set for $current_branch in $dir"
true # Hack cus i am lazy
else
# Check if there are unpushed commits
if [ "$(git rev-list --count HEAD..."$current_branch"@{u})" -gt 0 ]; then
echo "There are unpushed commits in $dir"
((unpushed_projects++))
fi
fi
fi
# Move back to the parent directory
cd ..
done
# Output the total number of directories checked
echo "Total directories checked: $total_dirs_checked"
# Output the number of projects with unpushed commits
echo "Projects with unpushed commits: $unpushed_projects"

View File

@@ -1,5 +0,0 @@
#!/usr/bin/env sh
WEIRD_NUMBER="115748555" #steamID3
find "$HOME/.local/share/Steam/userdata/$WEIRD_NUMBER/760" -type f -name "*.jpg" -not -path "*/thumbnails/*" -printf "%T@ %p\n" | sort --reverse | cut -d' ' -f2

View File

@@ -2,7 +2,7 @@
export FZF_DEFAULT_OPTS=' export FZF_DEFAULT_OPTS='
--prompt="Manual: " --prompt="Manual: "
--preview="echo {1} | sed -E \"s/^\((.+)\)/\1/\" | xargs -I{S} man -Pcat {S} {2} 2>/dev/null"' --preview="echo {1} | sed -E \"s/^\((.+)\)/\1/\" | xargs -I{S} man -Pcat {S} {2} | bat -l man -p --color=always 2>/dev/null"'
while getopts ":s:" opt; do while getopts ":s:" opt; do
case $opt in case $opt in

View File

@@ -2,4 +2,4 @@
git add -A git add -A
git commit -m "$(curl http://whatthecommit.com/index.txt)" git commit -m "$(curl http://whatthecommit.com/index.txt)"
git push

View File

@@ -27,3 +27,4 @@ esac
ls -ltd ./*/ | head -n 1 | awk '{print $9}' | xargs -I {} code {} ls -ltd ./*/ | head -n 1 | awk '{print $9}' | xargs -I {} code {}

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env bash
# requires: expac
pacman -Qqm | sort | fzf --preview 'pacman -Qil {}' --bind 'enter:execute(pacman -Qil {} | less)'
exit 0

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env bash
# requires: expac
comm -23 <(pacman -Qqe | sort) <({ pacman -Qqg base-devel; expac -l '\n' '%E' base; } | sort -u) | fzf --preview 'pacman -Qil {}' --bind 'enter:execute(pacman -Qil {} | less)'
exit 0

View File

@@ -1,6 +0,0 @@
#!/usr/bin/env sh
PKG=$(pacman -Slq | fzf --preview 'pacman -Si {1}')
if [ -n "$PKG" ]; then
sudo pacman -S "$PKG"
fi

View File

@@ -1,12 +0,0 @@
#!/usr/bin/env sh
# required packages:
# - wget
# - jq
set -e
# There are 2 subreddits "wallpapers" and "wallpaper" the 2nd one is bigger.
SUB="${1:-wallpaper}"
wget --hsts-file="$XDG_CACHE_HOME/wget-hsts" -O - "http://www.reddit.com/r/$SUB/top/.json?t=day" 2> /dev/null | jq -r ".data.children[0].data.url"

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env sh
# required packages:
# - sxiv
SELECT=$(sxiv -N "floatme" -t -o ~/pictures/wallpapers )
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
$SCRIPTPATH/set-bg.sh "$SELECT"

View File

@@ -1,19 +0,0 @@
#!/usr/bin/env sh
# required packages:
# - feh
set -e
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
[ -z "$@" ] && exit 0
LAST_BG_LOCATION="$XDG_CACHE_HOME/last-bg"
feh --no-fehbg --bg-fill $@
rm -f "$LAST_BG_LOCATION"
ln -s $1 $(realpath "$LAST_BG_LOCATION")
$SCRIPTPATH/set-color.sh

View File

@@ -1,11 +0,0 @@
#!/usr/bin/env sh
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
URL=$($SCRIPTPATH/reddit-wp.sh $1)
NAME=$(basename "$URL")
FILENAME=~/pictures/wallpapers/"$NAME"
wget "$URL" -nc -O "$FILENAME"
sleep 1
$SCRIPTPATH/set-bg.sh $FILENAME

View File

@@ -1,6 +1,4 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# required packages:
# - xclicp
set -e set -e
@@ -8,9 +6,8 @@ SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT") SCRIPTPATH=$(dirname "$SCRIPT")
$SCRIPTPATH/take-selected-screenshot.sh \ $SCRIPTPATH/take-selected-screenshot.sh \
| $SCRIPTPATH/nc-share-file.sh \ | $SCRIPTPATH/upload-image.sh \
| awk '{print $1"/preview"}' \ | wl-copy
| xclip -i -selection "clipboard"
notify-send -u low "Upload complete" notify-send -u low "Upload complete"

View File

@@ -1,18 +0,0 @@
#!/usr/bin/env sh
# makes a selection screenshot and prints out the filename in a date format
# not intended for direct use. Dosn't remove tmp dir
# required packages:
# - deepin-screenshot
set -e
TMPDIR=$(mktemp -d)
deepin-screenshot -n -s "$TMPDIR" 2>/dev/null
filename="$(date +"%d-%m-%y-%H-%M-%Z").png"
mv $TMPDIR/* "$TMPDIR/$filename"
printf "%s\n" "$TMPDIR/$filename"

View File

@@ -1,17 +0,0 @@
#!/usr/bin/env sh
set -e
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
SCREENSHOT_DIR="$HOME/pictures/screenshots"
screenshotFile=$($SCRIPTPATH/take-screenshot.sh)
mkdir -p "$SCREENSHOT_DIR"
mv "$screenshotFile" "$SCREENSHOT_DIR"
rm -rf "$(dirname $screenshotFile)"
printf "%s\n" "$SCREENSHOT_DIR/$(basename $screenshotFile)"

View File

@@ -1,14 +0,0 @@
#!/usr/bin/env sh
# index=$(pacmd list-sources | grep -oP '\* index: \d+' | awk '{ print $3 }')
# TODO default source not hardcoded
# pactl set-source-mute $index toggle
# Use the alsa approach
# amixer -q -D pulse set Capture toggle
pactl set-source-mute alsa_input.pci-0000_28_00.3.analog-stereo toggle

View File

@@ -0,0 +1,14 @@
#!/usr/bin/env sh
set -eo pipefail
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
source $XDG_CONFIG_HOME/imgur.sh # exports: IMGUR_CLIENT_ID and IMGUR_CLIENT_SECRET
[ -z "$1" ] && read IMAGE_FILE || IMAGE_FILE="$1"
[ -z "$IMAGE_FILE" ] && echo "No file provided" && exit 1
curl -X POST -H "Authorization: Client-ID $IMGUR_CLIENT_ID" -F "image=@$IMAGE_FILE" https://api.imgur.com/3/upload 2>/dev/null| jq --raw-output '.data.link'

View File

@@ -1,12 +0,0 @@
#!/usr/bin/env sh
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
$SCRIPTPATH/last-steam-screenshot.sh \
| head -n1 \
| $SCRIPTPATH/share-s3.sh \
| xclip -i -selection "clipboard"
notify-send -u low "Upload complete"

5
.local/share/scripts/webp.sh Executable file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/env sh
filename="${1%.*}"
magick "$1" "$filename.jpeg"

View File

@@ -8,19 +8,18 @@ export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache" export XDG_CACHE_HOME="$HOME/.cache"
export XDG_STATE_HOME="$HOME/.local/state" export XDG_STATE_HOME="$HOME/.local/state"
# XDG_DESKTOP_DIR="$HOME/desktop" export XDG_DESKTOP_DIR="$HOME/desktop"
XDG_DOCUMENTS_DIR="$HOME/doc" export XDG_DOCUMENTS_DIR="$HOME/doc"
export XDG_DOWNLOAD_DIR="$HOME/downloads" export XDG_DOWNLOAD_DIR="$HOME/downloads"
export XDG_MUSIC_DIR="$HOME/music" export XDG_MUSIC_DIR="$HOME/music"
# XDG_PICTURES_DIR="$HOME/pictures" export XDG_PICTURES_DIR="$HOME/pictures"
# XDG_PUBLICSHARE_DIR="$HOME/public" # XDG_PUBLICSHARE_DIR="$HOME/public"
# XDG_TEMPLATES_DIR="$HOME/templates" # XDG_TEMPLATES_DIR="$HOME/templates"
# XDG_VIDEOS_DIR="$HOME/videos" # XDG_VIDEOS_DIR="$HOME/videos"
export XDG_DATA_DIRS="$XDG_DATA_HOME/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/" # export XDG_DATA_DIRS="/etc:$XDG_CONFIG_DIRS"
export GOPATH="$XDG_DATA_HOME/go" export GOPATH="$XDG_DATA_HOME/go"
export VSCODE_EXTENSIONS="$XDG_DATA_HOME/vscode/extensions" export VSCODE_EXTENSIONS="$XDG_DATA_HOME/vscode/extensions"
export WINEPREFIX="$XDG_DATA_HOME/wine"
export RUSTUP_HOME="$XDG_DATA_HOME/rustup" export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
#export CARGO_INSTALL_ROOT="$XDG_DATA_HOME/cargo" #export CARGO_INSTALL_ROOT="$XDG_DATA_HOME/cargo"
export CARGO_HOME="$XDG_DATA_HOME/cargo" export CARGO_HOME="$XDG_DATA_HOME/cargo"
@@ -31,10 +30,7 @@ export AUDACITY_PATH="$XDG_DATA_HOME/audacity"
export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv" export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker" export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv
#export GNUPGHOME="$XDG_DATA_HOME"/gnupg #export GNUPGHOME="$XDG_DATA_HOME"/gnupg
export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
#export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
export NO_AT_BRIDGE=1

104
.zshrc
View File

@@ -9,113 +9,61 @@
# # # #
############################ ############################
# Required packages: export PATH=$HOME/.local/bin:$XDG_DATA_HOME/npm_global/bin:$XDG_DATA_HOME/cargo/bin:$PATH
# - zsh
# - oh-my-zsh-git (AUR)
# - zsh-theme-powerlevel10k
# - zsh-syntax-highlighting
# - zsh-completions
# - zsh-autosuggestions
# - nerd-font-hack (AUR)
# - lsd
# - fzf
# - pkgfile
# - trash-cli (with gvfs)
export PATH=$HOME/.local/bin:$HOME/.dotnet/tools:$XDG_DATA_HOME/npm_global/bin:$XDG_DATA_HOME/cargo/bin:$PATH
[[ $- != *i* ]] && return [[ $- != *i* ]] && return
[ -n $SSH_CONNECTION ] && source ~/.profile [ -n $SSH_CONNECTION ] && source ~/.profile
# Oh my zsh stuff # NIXOS specific stuff
source /etc/zshrc
# powerline instant promt # wal subshell for terminal colors
if [ -z $SSH_CONNECTION ]; then if test -f $XDG_CACHE_HOME/wal/sequences; then
(cat $XDG_CACHE_HOME/wal/sequences &)
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
fi fi
ZSH="/usr/share/oh-my-zsh" # Start oh-my-posh
HISTFILE="$XDG_CACHE_HOME/zsh_history" eval "$(oh-my-posh init zsh --config $XDG_CONFIG_HOME/oh-my-posh/config.toml)"
if [[ -n $SSH_CONNECTION ]]; then
ZSH_THEME="gallois"
else
ZSH_THEME="../../zsh-theme-powerlevel10k/powerlevel10k"
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f "$XDG_CACHE_HOME/p10k.zsh" ]] || source "$XDG_CACHE_HOME/p10k.zsh"
#[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
fi
# wal subshell
#(cat ~/.cache/wal/sequences &)
DISABLE_UPDATE_PROMPT=true
DISABLE_AUTO_UPDATE=true
ZSH_CACHE_DIR="$XDG_CACHE_HOME/oh-my-zsh" # mkdir ~/.cache/oh-my-zsh
_Z_DATA="$XDG_CACHE_HOME/z"
ZSH_COMPDUMP=$ZSH/cache/.zcompdump-$HOST
plugins=(
git
last-working-dir
extract
z
)
autoload -U compinit
# start oh my zsh
source $ZSH/oh-my-zsh.sh
# Sytax highlight
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# autosugestion
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
# command not found
source /usr/share/doc/pkgfile/command-not-found.zsh # dont forget to run pkgfile -u
# Variables # Variables
export MANPAGER="bat -l man -p"
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
# ZSH percent fix # ZSH percent fix
export PROMPT_EOL_MARK="" export PROMPT_EOL_MARK=""
HISTFILE="$XDG_CACHE_HOME/zsh_history"
HISTSIZE=10000
SAVEHIST=10000
setopt APPEND_HISTORY
# FZF # FZF
export FZF_DEFAULT_COMMAND="fd --type file --color=always" export FZF_DEFAULT_COMMAND="fd --type file --color=always"
export FZF_DEFAULT_OPTS="--ansi" export FZF_DEFAULT_OPTS="--ansi"
# FZF history
source <(fzf --zsh)
# Aliases # Aliases
alias vim="nvim" alias vim="nvim"
alias sudo='sudo '
alias please='sudo ' alias please='sudo '
alias ls='exa --icons'
[ -z $SSH_CONNECTION ] && alias ls='exa --icons' alias svim='sudoedit'
alias dotfiles="git --git-dir=$XDG_DATA_HOME/dotfiles-remastered --work-tree=$HOME" # dotfiles config --local status.showUntrackedFiles no
alias svim='sudo -E nvim'
alias dotfiles="git --git-dir=$XDG_DATA_HOME/dotfiles-remastered --work-tree=$HOME" # dotfile config --local status.showUntrackedFiles no
alias open="xdg-open" alias open="xdg-open"
alias mixer="pulsemixer" alias mixer="pulsemixer"
alias yt-dl-audio="yt-dlp --extract-audio --audio-format mp3 -o '%(title)s.%(ext)s'" alias yt-dl-audio="yt-dlp --extract-audio --audio-format mp3 -o '%(title)s.%(ext)s'"
alias rm="trash" #alias rm="trash" # broken autocompletion right now
alias modx="chmod +x" alias modx="chmod +x"
alias mv="mv -iv" alias mv="mv -iv"
alias cp="cp -riv" alias cp="cp -riv"
alias mkdir="mkdir -pv" alias mkdir="mkdir -pv"
alias yeet="sudo pacman -Rns"
alias ip="ip -c=auto" alias ip="ip -c=auto"
alias syu="sudo pacman -Syu" alias syu="sudo nix-channel --update"
alias virsh="virsh -c qemu:///system" alias virsh="virsh -c qemu:///system"
alias k="kubectl" alias k="kubectl"
alias ssh="TERM=xterm-256color ssh" alias ssh="TERM=xterm-256color ssh"
alias du="duf" alias df="duf"
alias du="dust"
alias nom="npm"
alias code="codium"
alias lg="lazygit"