diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..237d270 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,20 @@ +#if-shell 'env "$POWERLINE_CONFIG_COMMAND" tmux setup' '' 'run-shell "powerline-config tmux setup"' +set-window-option -g xterm-keys on +set -g set-titles on +set -g set-titles-string '#{session_name}: #{window_name}' + +# List of plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' + +# Other examples: +# set -g @plugin 'github_username/plugin_name' +# set -g @plugin 'github_username/plugin_name#branch' +# set -g @plugin 'git@github.com:user/plugin' +# set -g @plugin 'git@bitbucket.com:user/plugin' + +set -g @plugin 'catppuccin/tmux' +set -g @catppuccin_flavour 'macchiato' # or frappe, macchiato, mocha +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.tmux/plugins/tpm/tpm' +# vim: ft=tmux diff --git a/.tmux/plugins/tmux b/.tmux/plugins/tmux new file mode 160000 index 0000000..4e48b09 --- /dev/null +++ b/.tmux/plugins/tmux @@ -0,0 +1 @@ +Subproject commit 4e48b09a76829edc7b55fbb15467cf0411f07931 diff --git a/.tmux/plugins/tmux-sensible b/.tmux/plugins/tmux-sensible new file mode 160000 index 0000000..25cb91f --- /dev/null +++ b/.tmux/plugins/tmux-sensible @@ -0,0 +1 @@ +Subproject commit 25cb91f42d020f675bb0a2ce3fbd3a5d96119efa diff --git a/.tmux/plugins/tpm b/.tmux/plugins/tpm new file mode 160000 index 0000000..99469c4 --- /dev/null +++ b/.tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946 diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..05b97c9 --- /dev/null +++ b/.zshrc @@ -0,0 +1,149 @@ +# 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 + +#export TERM="xterm-256color" +#export TERM="xterm-256color" +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH +export PATH=/home/crimsen/.cargo/bin:$PATH + +export PATH="$PATH:/home/crimsen/.local/share/JetBrains/Toolbox/scripts:/home/crimsen/.local/bin" +# Path to your oh-my-zsh installation. +export ZSH="/home/crimsen/.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/robbyrussell/oh-my-zsh/wiki/Themes +ZSH_THEME="powerlevel10k/powerlevel10k" + +# 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 ~/.oh-my-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 the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to automatically update without prompting. +# DISABLE_UPDATE_PROMPT="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=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. +# 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. + +POWERLEVEL10K_MODE="nerdfont-complete" +# 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 ~/.oh-my-zsh/plugins/* +# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git) +plugins=(virtualenv) +POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(virtualenv nvm time) +POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(host status os_icon dir_writable dir newline vcs) +POWERLEVEL9K_MODE='nerdfont-complete' +POWERLEVEL9K_VCS_GIT_ICON='' + +ZLE_RPROMPT_INDENT=0 +POWERLEVEL9K_LEGACY_ICON_SPACING=true +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='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# 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 the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" + + +###-tns-completion-start-### +#if [ -f /Users/crimsen/.tnsrc ]; then +# source /Users/crimsen/.tnsrc +#fi +###-tns-completion-end-### + +# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh +typeset -g POWERLEVEL9K_INSTANT_PROMPT=off + +alias vim=nvim +export vflgeist=/home/crimsen/git/flaschengeist/flaschengeist/venv/bin/activate +if [ -n "$VIRTUAL_ENV" ]; then + source $VIRTUAL_ENV/bin/activate; +fi +if [ -n "$SOURCE_SCRIPT" ]; then + source $SOURCE_SCRIPT; +fi + +tmux has-session -t "default" 2>/dev/null +if [ $? != 0 ]; then + TMUX='' tmux new-session -s "default" -d +fi +if [[ -z "$TMUX" ]]; then + tmux attach-session -t "default" +else + tmux switch-client -t "default" +fi diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml new file mode 100644 index 0000000..647e4ee --- /dev/null +++ b/alacritty/alacritty.yml @@ -0,0 +1,22 @@ +font: + normal: + family: Hack Nerd Font Mono + style: Regular + bold: + family: Hack Nerd Font Mono + style: Bold + italic: + family: Hack Nerd Font Mono + style: Italic + bold_italic: + family: Hack Nerd Font Mono + style: Bold Italic + size: 11.0 +key_bindings: + - { + key: Return, + mods: Control|Shift, + action: SpawnNewInstance + } +import: + - ~/.config/alacritty/catppuccin/catppuccin-macchiato.yml diff --git a/alacritty/catppuccin b/alacritty/catppuccin new file mode 160000 index 0000000..3c808cb --- /dev/null +++ b/alacritty/catppuccin @@ -0,0 +1 @@ +Subproject commit 3c808cbb4f9c87be43ba5241bc57373c793d2f17 diff --git a/sway/catppuccin b/sway/catppuccin new file mode 160000 index 0000000..c89098f --- /dev/null +++ b/sway/catppuccin @@ -0,0 +1 @@ +Subproject commit c89098fc3517b64f0422aaaccb98dcab6ae9348f diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..83e812c --- /dev/null +++ b/sway/config @@ -0,0 +1,26 @@ +include $HOME/.config/sway/catppuccin/themes/catppuccin-macchiato +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left s +set $down n +set $up r +set $right t +# Your preferred terminal emulator +set $term alacritty +# Your preferred application launcher +# Note: pass the final command to swaymsg so that the resulting window can be opened +# on the original workspace that the command was run on. +#set $menu dmenu_path | dmenu | xargs swaymsg exec -- +#set $menu wofi --show drun | xargs swaymsg exec -- +set $menu wofi | xargs swaymsg exec -- + +include $HOME/.config/sway/config.d/* diff --git a/sway/config.d/00-base.conf b/sway/config.d/00-base.conf new file mode 100644 index 0000000..fe18397 --- /dev/null +++ b/sway/config.d/00-base.conf @@ -0,0 +1,7 @@ +# target title bg text indicator border +client.focused $pink $base $text $rosewater $pink +client.focused_inactive $mauve $base $text $rosewater $mauve +client.unfocused $mauve $base $text $rosewater $mauve +client.urgent $peach $base $peach $overlay0 $peach +client.placeholder $overlay0 $base $text $overlay0 $overlay0 +client.background $base diff --git a/sway/config.d/10-systemd-cgroups.conf b/sway/config.d/10-systemd-cgroups.conf new file mode 100644 index 0000000..cd0ec93 --- /dev/null +++ b/sway/config.d/10-systemd-cgroups.conf @@ -0,0 +1,13 @@ +# Automatically assign a dedicated systemd scope to the GUI applications +# launched in the same cgroup as the compositor. This could be helpful for +# implementing cgroup-based resource management and would be necessary when +# `systemd-oomd` is in use. +# +# Limitations: The script is using i3ipc window:new event to detect application +# launches and would fail to detect background apps or special surfaces. +# Therefore it's recommended to supplement the script with use of systemd user +# services for such background apps. +# +exec /usr/libexec/sway-systemd/assign-cgroups.py + +# ex: set filetype=swayconfig syntax=swayconfig diff --git a/sway/config.d/10-systemd-session.conf b/sway/config.d/10-systemd-session.conf new file mode 100644 index 0000000..4ec15d3 --- /dev/null +++ b/sway/config.d/10-systemd-session.conf @@ -0,0 +1,32 @@ +# Address several issues with DBus activation and systemd user sessions +# +# 1. DBus-activated and systemd services do not share the environment with user +# login session. In order to make the applications that have GUI or interact +# with the compositor work as a systemd user service, certain variables must +# be propagated to the systemd and dbus. +# Possible (but not exhaustive) list of variables: +# - DISPLAY - for X11 applications that are started as user session services +# - WAYLAND_DISPLAY - similarly, this is needed for wayland-native services +# - I3SOCK/SWAYSOCK - allow services to talk with sway using i3 IPC protocol +# +# 2. `xdg-desktop-portal` requires XDG_CURRENT_DESKTOP to be set in order to +# select the right implementation for screenshot and screencast portals. +# With all the numerous ways to start sway, it's not possible to rely on the +# right value of the XDG_CURRENT_DESKTOP variable within the login session, +# therefore the script will ensure that it is always set to `sway`. +# +# 3. GUI applications started as a systemd service (or via xdg-autostart-generator) +# may rely on the XDG_SESSION_TYPE variable to select the backend. +# Ensure that it is always set to `wayland`. +# +# 4. The common way to autostart a systemd service along with the desktop +# environment is to add it to a `graphical-session.target`. However, systemd +# forbids starting the graphical session target directly and encourages use +# of an environment-specific target units. Therefore, the integration +# package here provides and uses `sway-session.target` which would bind to +# the `graphical-session.target`. +# +# 5. Optionally, stop the target and unset the variables when the compositor +# exits. +# +exec /usr/libexec/sway-systemd/session.sh --with-cleanup diff --git a/sway/config.d/bar.conf b/sway/config.d/bar.conf new file mode 100644 index 0000000..12ec24d --- /dev/null +++ b/sway/config.d/bar.conf @@ -0,0 +1,17 @@ +# Status Bar: +# Read `man 5 sway-bar` for more information about this section. + bar { + swaybar_command waybar +# position top +# +# # When the status_command prints a new line to stdout, swaybar updates. +# # The default just shows the current date and time. +# status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done +# +# colors { +# statusline #ffffff +# background #323232 +# #inactive_workspace #32323200 #32323200 #5c5c5c +# inactive_workspace #323232 #323232 #5c5c5c +# } + } diff --git a/sway/config.d/idle.conf b/sway/config.d/idle.conf new file mode 100644 index 0000000..25991b4 --- /dev/null +++ b/sway/config.d/idle.conf @@ -0,0 +1,12 @@ +### Idle configuration +# +# Example configuration: +# +exec swayidle -w \ + timeout 300 'swaylock -f -c 000000' \ + before-sleep 'swaylock -f -c 000000' +# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ +# +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 300 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. diff --git a/sway/config.d/input.conf b/sway/config.d/input.conf new file mode 100644 index 0000000..a427c9e --- /dev/null +++ b/sway/config.d/input.conf @@ -0,0 +1,18 @@ +### Input configuration +# +# Example configuration: +# +# input "2:14:SynPS/2_Synaptics_TouchPad" { +# dwt enabled +# tap enabled +# natural_scroll enabled +# middle_emulation enabled +# } +# + +input "type:keyboard" { + xkb_layout "de" + xkb_variant "neo" + } +# You can get the names of your inputs by running: swaymsg -t get_inputs +# Read `man 5 sway-input` for more information about this section. diff --git a/sway/config.d/key_bindings.conf b/sway/config.d/key_bindings.conf new file mode 100644 index 0000000..a682ca0 --- /dev/null +++ b/sway/config.d/key_bindings.conf @@ -0,0 +1,34 @@ + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+Shift+x kill + + # Start your launcher + bindsym $mod+a exec $menu + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+l exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' + +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl --min-val=2 -q set 2%- +bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl -q set 2%+ diff --git a/sway/config.d/layout.conf b/sway/config.d/layout.conf new file mode 100644 index 0000000..452c090 --- /dev/null +++ b/sway/config.d/layout.conf @@ -0,0 +1,25 @@ +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+z splith + bindsym $mod+p splitv + + # Switch the current container between different layout styles + bindsym $mod+i layout stacking + bindsym $mod+v layout tabbed + bindsym $mod+l layout toggle split + + # Make the current focus fullscreen + bindsym $mod+e fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+space focus mode_toggle + + # Move focus to the parent container + bindsym $mod+u focus parent diff --git a/sway/config.d/motions.conf b/sway/config.d/motions.conf new file mode 100644 index 0000000..e663c64 --- /dev/null +++ b/sway/config.d/motions.conf @@ -0,0 +1,24 @@ +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right diff --git a/sway/config.d/output.conf b/sway/config.d/output.conf new file mode 100644 index 0000000..6f20235 --- /dev/null +++ b/sway/config.d/output.conf @@ -0,0 +1,13 @@ +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +#output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill +output * bg $HOME/Bilder/wallpaper/undertale_sans-wallpaper-2048x1152.jpg fill +#output * bg $HOME/Bilder/wallpaper.jpg fill +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs +font pango:Hack Nerd Font mono:style=Regular 12 diff --git a/sway/config.d/resize.conf b/sway/config.d/resize.conf new file mode 100644 index 0000000..64902ec --- /dev/null +++ b/sway/config.d/resize.conf @@ -0,0 +1,26 @@ +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+c mode "resize" + +# diff --git a/sway/config.d/scratchpad.conf b/sway/config.d/scratchpad.conf new file mode 100644 index 0000000..856b214 --- /dev/null +++ b/sway/config.d/scratchpad.conf @@ -0,0 +1,12 @@ +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show diff --git a/sway/config.d/workspace.conf b/sway/config.d/workspace.conf new file mode 100644 index 0000000..1bc9e77 --- /dev/null +++ b/sway/config.d/workspace.conf @@ -0,0 +1,27 @@ +# +# Workspaces: +# + # Switch to workspace + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 10 + # Move focused container to workspace + bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+2 move container to workspace number 2 + bindsym $mod+Shift+3 move container to workspace number 3 + bindsym $mod+Shift+4 move container to workspace number 4 + bindsym $mod+Shift+5 move container to workspace number 5 + bindsym $mod+Shift+6 move container to workspace number 6 + bindsym $mod+Shift+7 move container to workspace number 7 + bindsym $mod+Shift+8 move container to workspace number 8 + bindsym $mod+Shift+9 move container to workspace number 9 + bindsym $mod+Shift+0 move container to workspace number 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. diff --git a/sway/config.old b/sway/config.old new file mode 100644 index 0000000..3c3b4f5 --- /dev/null +++ b/sway/config.old @@ -0,0 +1,225 @@ +# class border bground text indicator child_border +#client.focused #0D47A1 #1565C0 #FFFFFF #0D47A1 #285577 +#client.focused_inactive #0D47A1 #90CAF9 #1F1F1F #0D47A1 #5F676A +#client.unfocused #0D47A1 #1F1F1F #90CAF9 #0D47A1 #222222 +#client.urgent #0D47A1 #900000 #FFFFFF #900000 #900000 +#client.placeholder #0D47A1 #1F1F1F #FFFFFF #0D47A1 #0C0C0C + +#client.background #1f1f1f + +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +#font pango:monospace 8 +font pango:Hack Nerd Font mono:style=Regular 12 +#font pango:JetBrainsMono Nerd Font:style=Regular 12 + +#exec_always --no-startup-id $HOME/.config/polybar/my_theme/launch.sh +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +# Start XDG autostart .desktop files using dex. See also +# https://wiki.archlinux.org/index.php/XDG_Autostart +exec --no-startup-id dex-autostart --autostart --environment i3 + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork + +# NetworkManager is the most popular way to manage wireless networks on Linux, +# and nm-applet is a desktop environment-independent system tray GUI for it. +exec --no-startup-id nm-applet + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl --min-val=2 -q set 2%- +bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl -q set 2%+ +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# move tiling windows via drag & drop by left-clicking into the title bar, +# or left-clicking anywhere into the window while holding the floating modifier. +tiling_drag modifier + +# start a terminal +#bindsym $mod+Return exec i3-sensible-terminal +bindsym $mod+Return exec alacritty + +# kill focused window +bindsym $mod+Shift+X kill + +# start dmenu (a program launcher) +#bindsym $mod+a exec --no-startup-id dmenu_run +bindsym $mod+a exec --no-startup-id $HOME/.config/polybar/my_theme/scripts/launcher.sh +# A more modern dmenu replacement is rofi: +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +# change focus +bindsym $mod+n focus left +bindsym $mod+r focus down +bindsym $mod+t focus up +bindsym $mod+d focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+N move left +bindsym $mod+Shift+R move down +bindsym $mod+Shift+T move up +bindsym $mod+Shift+D move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+s split h + +# split in vertical orientation +bindsym $mod+p split v + +# enter fullscreen mode for the focused container +bindsym $mod+e fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+i layout stacking +bindsym $mod+v layout tabbed +bindsym $mod+l layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+u focus parent + +# focus the child container +#bindsym $mod+d focus child + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $ws10 + +# reload the configuration file +#bindsym $mod+Shift+adiaeresis reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +#bindsym $mod+Shift+C restart +bindsym $mod+Shift+C reload +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+L exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym n resize shrink width 10 px or 10 ppt + bindsym r resize grow height 10 px or 10 ppt + bindsym t resize shrink height 10 px or 10 ppt + bindsym d resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+c mode "default" +} + +bindsym $mod+c mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3status +} + +#for_window [class=".*"] border pixel 0 +gaps inner 10 +gaps outer 5 +smart_gaps off +smart_borders on +for_window [class=".*"] border pixel 0 +#for_window [class=".*"] border_radius 20 + +exec --no-startup-id nitrogen --restore +bindsym $mod+j exec --no-startup-id $HOME/.config/polybar/my_theme/scripts/powermenu.sh + +exec --no-startup-id picom -b + +input "type:keyboard" { + xkb_layout "de" + xkb_variant "neo" + } diff --git a/wofi b/wofi new file mode 160000 index 0000000..e21f47a --- /dev/null +++ b/wofi @@ -0,0 +1 @@ +Subproject commit e21f47a050fc60df78045a98426e16756e5f09d5