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 quit-after-last-window-closed = true

View File

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

6
.zshrc
View File

@@ -57,7 +57,7 @@ export GOBIN="$HOME/go/bin"
export EDITOR='nvim' 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. # Path to your Oh My Zsh installation.
#export ZSH="$HOME/.oh-my-zsh" #export ZSH="$HOME/.oh-my-zsh"
@@ -179,6 +179,8 @@ if [ "$TERM_PROGRAM" != "Apple_Terminal" ]; then
fi fi
# Created by `pipx` on 2024-09-15 07:28:13 # 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/bin:$PATH"
export PATH="/opt/homebrew/opt/openjdk@17/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 Lazygit: git manager in terminal
bat, stow, yazi, lazygit, fzf, eza, zoxide, tmux, neovim, zsh 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.