Added first version of a gamescope script

This commit is contained in:
2025-04-13 18:36:51 +02:00
parent 54e41ea1c5
commit b11eff87d1
5 changed files with 246 additions and 3 deletions

View File

@@ -1,2 +1,3 @@
font-size = 16.0
command = /home/linuxbrew/.linuxbrew/bin/zsh --login --interactive
font-size = 13.0
quit-after-last-window-closed = true

View File

@@ -1,4 +1,5 @@
set-option -sa terminal-overrides ",xterm*:Tc"
set-option -g default-shell /home/linuxbrew/.linuxbrew/bin/zsh
set -g mouse on
unbind C-b

6
.zshrc
View File

@@ -57,7 +57,7 @@ export GOBIN="$HOME/go/bin"
export EDITOR='nvim'
export PATH="/usr/local/bin:/opt/homebrew/bin:$HOME/Library/Python/3.8/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/homebrew/sbin:$HOME/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/Library/Application:Support/JetBrains/Toolbox/scripts:/usr/local/go/bin:$GOPATH:$GOBIN"
export PATH="/home/linuxbrew/.linuxbrew/bin/:/usr/local/bin:/opt/homebrew/bin:$HOME/Library/Python/3.8/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/homebrew/sbin:$HOME/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/Library/Application:Support/JetBrains/Toolbox/scripts:$GOPATH/bin"
# Path to your Oh My Zsh installation.
#export ZSH="$HOME/.oh-my-zsh"
@@ -179,6 +179,8 @@ if [ "$TERM_PROGRAM" != "Apple_Terminal" ]; then
fi
# Created by `pipx` on 2024-09-15 07:28:13
export PATH="$PATH:/Users/sebastian/.local/bin:$HOME/Library/Android/sdk/platform-tools"
export PATH="$PATH:~/.local/bin:$HOME/Library/Android/sdk/platform-tools"
export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"
export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"
fastfetch

79
gamescope-kde-dynamic-res Normal file
View File

@@ -0,0 +1,79 @@
#!/bin/bash
# Function to get the current active mode id for the enabled output
get_current_mode_id() {
get_screen_info | jq -r '.outputs[] | select(.enabled == true) | .currentModeId'
}
# Function to get the active mode information (width, height, refresh rate) based on the mode id for the enabled output
get_mode_info() {
local mode_id="$1"
get_screen_info | jq -r --arg mode_id "$mode_id" '.outputs[] | select(.enabled == true) | .modes[] | select(.id == $mode_id) | {width: .size.width, height: .size.height, refresh: .refreshRate}'
}
# Function to get the HDR state of the enabled display
get_hdr_state() {
get_screen_info | jq -r '.outputs[] | select(.enabled == true) | .hdr'
}
# Function to get the VRR (adaptive sync) state of the enabled display
get_vrr_state() {
get_screen_info | jq -r '.outputs[] | select(.enabled == true) | .vrrPolicy'
}
# Function to get current screen information in JSON format
get_screen_info() {
kscreen-doctor -j
}
# Extract width, height, and refresh rate from mode info for the enabled output
get_width() {
echo "$1" | jq -r '.width'
}
get_height() {
echo "$1" | jq -r '.height'
}
get_refresh_rate() {
echo "$1" | jq -r '.refresh'
}
# Main script logic
# Get the current mode ID and mode info for the enabled display
mode_id=$(get_current_mode_id)
mode_info=$(get_mode_info "$mode_id")
# Extract width, height, and refresh rate from the mode info
KDE_WIDTH=$(get_width "$mode_info")
KDE_HEIGHT=$(get_height "$mode_info")
KDE_REFRESH=$(get_refresh_rate "$mode_info")
# Get HDR and VRR (adaptive sync) states for the enabled display
HDR_STATE=$(get_hdr_state)
VRR_STATE=$(get_vrr_state)
# Build the gamescope command with dynamic flags based on HDR and VRR support
gamescope_cmd="gamescope -W $KDE_WIDTH -H $KDE_HEIGHT -r $KDE_REFRESH --framerate-limit 175 --fullscreen --force-grab-cursor --mangoapp"
# Append HDR flag if HDR is supported and enabled
if [[ "$HDR_STATE" == "true" ]]; then
gamescope_cmd="$gamescope_cmd --hdr-enabled"
fi
# Append VRR (adaptive sync) flag if supported
if [[ "$VRR_STATE" == 1 || "$VRR_STATE" == 2 ]]; then
gamescope_cmd="$gamescope_cmd --adaptive-sync"
fi
# Output the environment variables and the gamescope command
echo "Screen Width: $KDE_WIDTH"
echo "Screen Height: $KDE_HEIGHT"
echo "Screen Refresh Rate: $KDE_REFRESH"
echo "HDR State: $HDR_STATE"
echo "VRR State: $VRR_STATE"
echo "Running: $gamescope_cmd"
# Run the constructed gamescope command
$gamescope_cmd -- "$@"

View File

@@ -21,3 +21,163 @@ yazi: File manager in terminal
Lazygit: git manager in terminal
bat, stow, yazi, lazygit, fzf, eza, zoxide, tmux, neovim, zsh
1. The cursor is moved using either the arrow keys or the hjkl keys.
h (left) j (down) k (up) l (right)
2. To start Neovim from the shell prompt type:
$ nvim FILENAME
3. To exit Neovim type: <Esc> :q! <Enter> to trash all changes.
OR type: <Esc> :wq <Enter> to save the changes.
4. To delete the character at the cursor type: x
5. To insert or append text type:
i insert text <Esc> insert before the cursor.
A append text <Esc> append after the line.
1. To delete from the cursor up to the next word type: `dw`{normal}
2. To delete from the cursor to the end of a line type: `d$`{normal}
3. To delete a whole line type: `dd`{normal}
4. To repeat a motion prepend it with a number: `2w`{normal}
5. The format for a change command is:
operator [number] motion
where:
operator - is what to do, such as [d](d) for delete
[number] - is an optional count to repeat the motion
motion - moves over the text to operate on, such as:
[w](w) (word),
[$]($) (to the end of line), etc.
6. To move to the start of the line use a zero: [0](0)
7. To undo previous actions, type: `u`{normal} (lowercase u)
To undo all the changes on a line, type: `U`{normal} (capital U)
To undo the undos, type: `<C-r>`{normal}
1. To put back text that has just been deleted, type [p](p). This puts the
deleted text AFTER the cursor (if a line was deleted it will go on the
line below the cursor).
2. To replace the character under the cursor, type [r](r) and then the
character you want to have there.
3. The [change operator](c) allows you to change from the cursor to where
the motion takes you. Type `ce`{normal} to change from the cursor to the
end of the word, `c$`{normal} to change to the end of a line, etc.
4. The format for change is:
c [number] motion
1. `<C-g>`{normal} displays your location and the file status.
`G`{normal} moves to the end of the file.
number `G`{normal} moves to that line number.
`gg`{normal} moves to the first line.
2. Typing `/`{normal} followed by a phrase searches FORWARD for the phrase.
Typing `?`{normal} followed by a phrase searches BACKWARD for the phrase.
After a search type `n`{normal} to find the next occurrence in the same
direction or `N`{normal} to search in the opposite direction.
`<C-o>`{normal} takes you back to older positions, `<C-i>`{normal} to
newer positions.
3. Typing `%`{normal} while the cursor is on a (, ), [, ], {, or } goes to its
match.
4. To substitute new for the first old in a line type
~~~ cmd
:s/old/new
~~~
To substitute new for all olds on a line type
~~~ cmd
:s/old/new/g
~~~
To substitute phrases between two line #'s type
~~~ cmd
:#,#s/old/new/g
~~~
To substitute all occurrences in the file type
~~~ cmd
:%s/old/new/g
~~~
To ask for confirmation each time add 'c'
~~~ cmd
:%s/old/new/gc
1. Type `o`{normal} to open a line BELOW the cursor and start Insert mode.
Type `O`{normal} to open a line ABOVE the cursor.
2. Type `a`{normal} to insert text AFTER the cursor.
Type `A`{normal} to insert text after the end of the line.
3. The `e`{normal} command moves to the end of a word.
4. The `y`{normal} operator copies text, `p`{normal} pastes it.
5. Typing a capital `R`{normal} enters Replace mode until `<Esc>`{normal} is
pressed.
6. Typing "[:set](:set) xxx" sets the option "xxx". Some options are:
'ic' 'ignorecase' ignore upper/lower case when searching
'is' 'incsearch' show partial matches for a search phrase
'hls' 'hlsearch' highlight all matching phrases
You can either use the long or the short option name.
7. Prepend "no" to switch an option off:
~~~ cmd
:set noic
~~~
8. Prepend "inv" to invert an option:
~~~ cmd
:set invic
~~~
** Command line completion with `<C-d>`{normal} and `<Tab>`{normal}. **
1. List the contents of the current directory: `:!ls`{vim}
2. Type the start of a command: `:e`{vim}
3. Press `<C-d>`{normal} and Neovim will show a list of commands beginning with "e".
4. Press `<Tab>`{normal} and Neovim will complete the command name to ":edit".
5. Now add a space and the start of an existing file name: `:edit FIL`{vim}
6. Press `<Tab>`{normal}. Neovim will complete the name ("FIL" -> "FILE", if it is unique).
NOTE: Completion works for many commands. It is especially useful for `:help`{vim}.
1. Type `:help`{vim}
or press `<F1>`{normal} or `<Help>`{normal} to open a help window.
2. Type `:help TOPIC`{vim} to find help on TOPIC.
3. Type `<C-w><C-w>`{normal} to jump to another window
4. Type `:q`{vim} to close the help window
5. Create an init.vim startup script to keep your preferred settings.
6. While in command mode, press `<C-d>`{normal} to see possible completions.
Press `<Tab>`{normal} to use one completion.