Compare commits

..

No commits in common. "master" and "old" have entirely different histories.
master ... old

38 changed files with 730 additions and 269 deletions

View file

@ -1,12 +0,0 @@
{
"chromiumSwitches": {},
"IS_MAXIMIZED": false,
"IS_MINIMIZED": false,
"WINDOW_BOUNDS": {
"x": 110,
"y": 68,
"width": 1283,
"height": 726
},
"SKIP_HOST_UPDATE": true
}

View file

@ -1,13 +0,0 @@
[dmenu]
dmenu_command = rofi -theme Arc-Dark -font 'hack 18'
[dmenu_passphrase]
obscure = True
obscure_color = #222222
[database]
database_1 = /home/vylpes/Nextcloud/Passwords.kdbx
keyfile_1 = /home/vylpes/Documents/KeePass.keyx
pw_cache_period_min = 360
autotype_default = {USERNAME}{TAB}{PASSWORD}{ENTER}

View file

@ -1,9 +0,0 @@
[xin_0]
file=/home/vylpes/Nextcloud/Pictures/Wallpapers/Unsplash/kalle-kortelainen-7JtgUEYVOu0.jpg
mode=0
bgcolor=#000000
[xin_1]
file=/home/vylpes/Nextcloud/Pictures/Wallpapers/Unsplash/kalle-kortelainen-7JtgUEYVOu0.jpg
mode=0
bgcolor=#000000

View file

@ -1,12 +0,0 @@
[geometry]
posx=1930
posy=47
sizex=1898
sizey=1021
[nitrogen]
view=icon
recurse=true
sort=alpha
icon_caps=false
dirs=/home/vylpes/Nextcloud/Pictures/Wallpapers;

View file

@ -1,30 +0,0 @@
#!/bin/bash
# Save this file as ~/.config/yadm/bootstrap and make it executable. It will
# execute all executable files (excluding templates and editor backups) in the
# ~/.config/yadm/bootstrap.d directory when run.
set -eu
# Directory to look for bootstrap executables in
BOOTSTRAP_D="${BASH_SOURCE[0]}.d"
if [[ ! -d "$BOOTSTRAP_D" ]]; then
echo "Error: bootstrap directory '$BOOTSTRAP_D' not found" >&2
exit 1
fi
declare -a bootstraps
while IFS= read -r bootstrap; do
if [[ -x "$bootstrap" && ! "$bootstrap" =~ "##" && ! "$bootstrap" =~ ~$ ]]; then
bootstraps+=("$bootstrap")
fi
done < <(find -L "$BOOTSTRAP_D" -type f | sort)
for bootstrap in "${bootstraps[@]}"; do
if ! "$bootstrap"; then
echo "Error: bootstrap '$bootstrap' failed" >&2
exit 1
fi
done

View file

@ -1,11 +0,0 @@
#!/bin/bash
if pacman -Q paru; then
exit 0
fi
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git /tmp/paru
cd /tmp/paru
makepkg -si
cd
rm -rf /tmp/paru

View file

@ -1,8 +0,0 @@
#!/bin/bash
while read -r line; do
if paru -Q $line; then
echo "$line installed"
else
paru -S --noconfirm $line
fi
done <$HOME/.config/yadm/files/packages.txt

View file

@ -1,8 +0,0 @@
#!/bin/bash
if [ $SHELL = '/bin/zsh' ]; then
exit 0
else
chsh --shell /bin/zsh
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
fi

View file

@ -1,9 +0,0 @@
#!/bin/bash
if pacman -Q docker; then
exit 0
else
sudo pacman -S --noconfirm docker docker-compose
sudo usermod -aG docker vylpes
sudo systemctl enable --now docker
fi

View file

@ -1,6 +0,0 @@
#!/bin/bash
if [ $(cat /etc/pam.d/login | grep pam_gnome_keyring.so | wc -l) = "0" ]; then
sudo cp $HOME/.config/yadm/files/login /etc/pam.d/login
else
exit 0
fi

View file

@ -1,5 +0,0 @@
#!/bin/bash
mkdir -p $HOME/Documents
mkdir -p $HOME/Downloads
mkdir -p $HOME/Desktop
mkdir -p $HOME/Pictures/captures

View file

@ -1,9 +0,0 @@
#!/bin/bash
if pacman -Q virt-manager; then
exit 0
else
sudo pacman -S --noconfirm virt-manager
sudo systemctl enable --now libvirtd.socket
sudo usermod -aG libvirt vylpes
fi

View file

@ -1,5 +0,0 @@
#!/bin/bash
if command -v nvim >/dev/null 2>&1; then
nvim '+PlugInstall' '+qall'
fi

View file

@ -1,6 +0,0 @@
#!/bin/bash
if command -v nvm >/dev/null 2>&1; then
exit 0
else
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
fi

View file

@ -1,2 +0,0 @@
#!/bin/bash
sudo cp $HOME/.config/yadm/files/40-libinput.conf /usr/share/X11/xorg.conf.d/

View file

@ -1 +0,0 @@
yadm remote set-url origin "ssh://git@ssh.git.vylpes.xyz:222/Vylpes/dotfiles.git"

View file

@ -1,55 +0,0 @@
# Match on all types of devices but joysticks
#
# If you want to configure your devices, do not copy this file.
# Instead, use a config snippet that contains something like this:
#
# Section "InputClass"
# Identifier "something or other"
# MatchDriver "libinput"
#
# MatchIsTouchpad "on"
# ... other Match directives ...
# Option "someoption" "value"
# EndSection
#
# This applies the option any libinput device also matched by the other
# directives. See the xorg.conf(5) man page for more info on
# matching devices.
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "NaturalScrolling" "True"
Option "Tapping" "on"
Option "TappingButtonMap" "lrm"
EndSection
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection

View file

@ -1,9 +0,0 @@
#%PAM-1.0
auth requisite pam_nologin.so
auth include system-local-login
auth optional pam_gnome_keyring.so
account include system-local-login
session include system-local-login
session optional pam_gnome_keyring.so auto_start
password include system-local-login

View file

@ -1,35 +0,0 @@
alacritty
arandr
autorandr
cups
discord
dunst
firefox
flameshot
gnome-keyring
i3-wm
i3lock
i3lock-fancy
keepassxc
keepmenu
mpv
neovim
nextcloud-client
nitrogen
noto-fonts-emoji
pavucontrol
playerctl
pulseaudio-control
picom
polybar
ranger
rsync
sxiv
rofi
tldr
ttf-font-awesome
ttf-hack
xclip
xorg-xinit
yt-dlp
zsh

23
.zshrc
View file

@ -1,23 +0,0 @@
# 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
# Created by newuser for 5.9
source ~/powerlevel10k/powerlevel10k.zsh-theme
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
alias lss="ls -lah"
alias gco="git checkout"
alias gcm="git commit -m"
alias gss="git status -s"
export EDITOR="nvim"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

47
README.md Normal file
View file

@ -0,0 +1,47 @@
# Vylpes' Dotfiles Repository
This repository includes all my linux configuration files
## Package List
This is a list of the packages I use
- alacritty
- alsa-firmware
- alsa-lib
- alsa-plugins
- alsa-utils
- cmatrix
- cups
- discord
- dolphin-emu
- dunst
- flameshot
- gimp
- i3
- i3lock
- i3lock-fancy
- keepassxc
- keepmenu
- lightdm
- lightdm-webkit2-greeter
- networkmanager
- nitrogen
- nodejs
- npm
- nvidia
- nvm
- openssh
- pavucontrol
- picom
- polybar
- powerlevel10k
- pulseaudio
- rofi
- rofi-emoji
- ttf-font-awesome
- ttf-hack
- vim
- x11
- yarn
- zsh

163
etc/lightdm/lightdm.conf Normal file
View file

@ -0,0 +1,163 @@
#
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
# dbus-service = True if LightDM provides a D-Bus service to control it
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7 # Setting this to a value < 7 implies security issues, see FS#46799
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
#logind-check-graphical=false
#log-directory=/var/log/lightdm
run-directory=/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
#backup-logs=true
#dbus-service=true
#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (local, xremote)
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-webkit2-greeter
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
user-session=xmonad
#allow-user-switching=true
#allow-guest=true
#guest-session=
session-wrapper=/etc/lightdm/Xsession
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false
#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=
#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8

View file

@ -39,7 +39,6 @@ exec_always --no-startup-id nitrogen --restore
exec_always --no-startup-id dunst
exec_always --no-startup-id xborders --disable-version-warning --border-red 79 --border-green 190 --border-blue 217 --border-radius 15
exec_always --no-startup-id nextcloud --background
exec_always --no-startup-id autorandr -c
exec --no-startup-id polybar -r
exec --no-startup-id "sh /home/vylpes/.screenlayout/default.sh"

View file

@ -0,0 +1,42 @@
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
color_good = "#63C5DA"
interval = 5
}
order += "ethernet _first_"
order += "disk /"
order += "load"
order += "memory"
order += "tztime local"
ethernet _first_ {
format_up = "E: %ip (%speed)"
format_down = "E: down"
}
disk "/" {
format = "%avail"
}
load {
format = "%1min"
}
memory {
format = "%used | %available"
threshold_degraded = "1G"
format_degraded = "MEMORY < %available"
}
tztime local {
format = "%a %d/%m/%Y %H:%M"
}

View file

@ -47,8 +47,32 @@ call plug#begin("~/.vim/plugged")
Plug 'neovim/nvim-lspconfig'
Plug 'jose-elias-alvarez/null-ls.nvim'
Plug 'MunifTanjim/prettier.nvim'
Plug 'github/copilot.vim'
Plug 'CopilotC-Nvim/CopilotChat.nvim', { 'branch': 'main' }
call plug#end()
lua << EOF
local prompts = require('CopilotChat.prompts')
local select = require('CopilotChat.select')
require("CopilotChat").setup {
debug = false,
question_header = '## User ',
answer_header = '## Copilot ',
error_header = '## Error ',
separator = '---',
selection = function(source)
return select.visual(source) or select.line(source)
end,
window = {
layout = 'float',
},
}
EOF
if (has("termguicolors"))
set termguicolors
endif
@ -99,3 +123,21 @@ nnoremap <leader>ff :FZF<CR>
nnoremap mm :nohl<CR>
nnoremap ml :%s/\r//g<CR>
nnoremap <leader>yb :!yarn build<CR>
nnoremap <leader>yi :!yarn install<CR>
nnoremap <leader>ys :!yarn start<CR>
nnoremap <leader>yt :!yarn test<CR>
nnoremap <leader>dr :!dotnet run<CR>
nnoremap <leader>p <Plug>(prettier-format)<CR>
nnoremap <C-p> :CopilotChatToggle<CR>
nnoremap <leader>ps :CopilotChatStop<CR>
nnoremap <leader>pr :CopilotChatReset<CR>
vnoremap <leader>pe :CopilotChatExplain<CR>
vnoremap <leader>pr :CopilotChatReview<CR>
vnoremap <leader>pf :CopilotChatFix<CR>
vnoremap <leader>po :CopilotChatOptimize<CR>
vnoremap <leader>pd :CopilotChatDocs<CR>
vnoremap <leader>pt :CopilotChatTests<CR>

View file

@ -0,0 +1,33 @@
Config { font = "xft:hack:pixelsize=20:antialias=true:hinting=true"
, additionalFonts = [ "xft:Font Awesome 6 Free Solid:pixelsize=20"
, "xft:Font Awesome 6 Brands:pixelsize=20"
]
, borderColor = "black"
, border = TopB
, bgColor = "black"
, fgColor = "grey"
, alpha = 255
, position = Static { xpos = 0, ypos = 0, width = 2880, height = 30 }
, textOffset = -1
, iconOffset = -1
, lowerOnStart = True
, pickBroadest = False
, persistent = True
, hideOnStart = False
, iconRoot = "/home/vylpes/.xmonad/xpm"
, allDesktops = False
, overrideRedirect = True
, commands = [ Run Network "enp24s0" ["-t", "<fn=1></fn><rx>kb <fn=1></fn><tx>kb"] 10
, Run Cpu ["-t", "<total>%", "-L","3","-H","50",
"--normal","green","--high","red"] 10
, Run Memory ["-t","<usedratio>%"] 10
, Run Com "uname" ["-r"] "" 36000
, Run Date "%a %_d %b %Y %H:%M" "date" 10
, Run DiskU [("/", "<free>"),("/home", "| hdd <free>")] [] 10
, Run UnsafeStdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = "<fn=1></fn> %cpu% | <fn=1></fn> %memory% | %enp24s0% | <fn=1></fn> %disku% }\
\{ <fc=#ee9a00>%date%</fc> | <fn=2></fn> %uname% | %UnsafeStdinReader%"
}

20
home/vylpes/.vimrc Normal file
View file

@ -0,0 +1,20 @@
syntax on
set number
set linebreak
set showbreak=+++
set showmatch
set visualbell
set hlsearch
set smartcase
set ignorecase
set incsearch
set autoindent
set smartindent
set ruler
set undolevels=1000
set backspace=indent,eol,start

View file

@ -0,0 +1,376 @@
-- IMPORTS
import XMonad
import Data.Monoid
import System.Exit
import XMonad.Util.SpawnOnce
import XMonad.Util.Run
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.WorkspaceHistory
import XMonad.Hooks.DynamicLog
import XMonad.Actions.MouseResize
import Data.Map (fromList)
import Data.Monoid (mappend)
import XMonad.Layout.Grid
import XMonad.Layout.WindowArranger
import XMonad.Layout.MultiToggle
import XMonad.Hooks.ManageHelpers
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import qualified XMonad.Layout.ToggleLayouts as T
-- The preferred terminal program, which is used in a binding below and by
-- certain contrib modules.
--
myTerminal = "alacritty"
-- Whether focus follows the mouse pointer.
myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True
-- Whether clicking on a window to focus also passes the click to the window
myClickJustFocuses :: Bool
myClickJustFocuses = False
-- Width of the window border in pixels.
--
myBorderWidth = 2
windowCount :: X (Maybe String)
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
-- modMask lets you specify which modkey you want to use. The default
-- is mod1Mask ("left alt"). You may also consider using mod3Mask
-- ("right alt"), which does not conflict with emacs keybindings. The
-- "windows key" is usually mod4Mask.
--
myModMask = mod4Mask
-- The default number of workspaces (virtual screens) and their names.
-- By default we use numeric strings, but any string may be used as a
-- workspace name. The number of workspaces is determined by the length
-- of this list.
--
-- A tagging example:
--
-- > workspaces = ["web", "irc", "code" ] ++ map show [4..9]
--
myWorkspaces = ["1","2","3","4","5","6","7","8","9"]
-- Border colors for unfocused and focused windows, respectively.
--
myNormalBorderColor = "#222222"
myFocusedBorderColor = "#dddddd"
------------------------------------------------------------------------
-- Key bindings. Add, modify or remove key bindings here.
--
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
-- launch a terminal
[ ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)
-- launch dmenu
-- , ((modm, xK_p ), spawn "sh ~/.scripts/dmenu_fix")
-- , ((modm, xK_p ), spawn "dmenu_run")
, ((modm, xK_p ), spawn "rofi -combi-modi window,drun,ssh -theme Arc-Dark -font 'hack 18' -show combi")
, ((modm .|. shiftMask, xK_m ), spawn "rofi -show emoji -modi emoji -theme Arc-Dark -font 'hack 18'")
-- launch firefox
, ((modm .|. shiftMask, xK_b ), spawn "firefox")
-- launch flameshot
, ((modm .|. shiftMask, xK_s ), spawn "flameshot full -c -p ~/captures")
, ((modm, xK_s ), spawn "flameshot gui -p ~/captures")
-- launch gmrun
, ((modm .|. shiftMask, xK_p ), spawn "gmrun")
-- close focused window
, ((modm .|. shiftMask, xK_c ), kill)
-- Rotate through the available layout algorithms
, ((modm, xK_space ), sendMessage NextLayout)
-- Reset the layouts on the current workspace to default
, ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
-- Resize viewed windows to the correct size
, ((modm, xK_n ), refresh)
-- Move focus to the next window
, ((modm, xK_Tab ), windows W.focusDown)
-- Move focus to the next window
, ((modm, xK_j ), windows W.focusDown)
-- Move focus to the previous window
, ((modm, xK_k ), windows W.focusUp )
-- Move focus to the master window
, ((modm, xK_m ), windows W.focusMaster )
-- Swap the focused window and the master window
, ((modm, xK_Return), windows W.swapMaster)
-- Swap the focused window with the next window
, ((modm .|. shiftMask, xK_j ), windows W.swapDown )
-- Swap the focused window with the previous window
, ((modm .|. shiftMask, xK_k ), windows W.swapUp )
-- Shrink the master area
, ((modm, xK_h ), sendMessage Shrink)
-- Expand the master area
, ((modm, xK_l ), sendMessage Expand)
-- Lock the screen
, ((modm .|. shiftMask, xK_z ), spawn "dm-tool lock")
-- Push window back into tiling
, ((modm, xK_t ), withFocused $ windows . W.sink)
-- Increment the number of windows in the master area
, ((modm , xK_comma ), sendMessage (IncMasterN 1))
-- Deincrement the number of windows in the master area
, ((modm , xK_period), sendMessage (IncMasterN (-1)))
-- Toggle the status bar gap
-- Use this binding with avoidStruts from Hooks.ManageDocks.
-- See also the statusBar function from Hooks.DynamicLog.
--
-- , ((modm , xK_b ), sendMessage ToggleStruts)
-- Quit xmonad
, ((modm .|. shiftMask, xK_q ), io (exitWith ExitSuccess))
-- Restart xmonad
, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart")
-- Run xmessage with a summary of the default keybindings (useful for beginners)
, ((modm .|. shiftMask, xK_slash ), spawn ("echo \"" ++ help ++ "\" | xmessage -file -"))
]
++
--
-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
--
[((m .|. modm, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
++
--
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
--
[((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
| (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
------------------------------------------------------------------------
-- Mouse bindings: default actions bound to mouse events
--
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
-- mod-button1, Set the window to floating mode and move by dragging
[ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
>> windows W.shiftMaster))
-- mod-button2, Raise the window to the top of the stack
, ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
-- mod-button3, Set the window to floating mode and resize by dragging
, ((modm, button3), (\w -> focus w >> mouseResizeWindow w
>> windows W.shiftMaster))
-- you may also bind events to the mouse scroll wheel (button4 and button5)
]
------------------------------------------------------------------------
-- Layouts:
-- You can specify and transform your layouts by modifying these values.
-- If you change layout bindings be sure to use 'mod-shift-space' after
-- restarting (with 'mod-q') to reset your layout state to the new
-- defaults, as xmonad preserves your old layout settings by default.
--
-- The available layouts. Note that each layout is separated by |||,
-- which denotes layout choice.
--
myLayout = avoidStruts (tiled ||| Mirror tiled ||| Full ||| Grid)
where
-- default tiling algorithm partitions the screen into two panes
tiled = Tall nmaster delta ratio
-- The default number of windows in the master pane
nmaster = 1
-- Default proportion of screen occupied by master pane
ratio = 1/2
-- Percent of screen to increment by when resizing panes
delta = 3/100
------------------------------------------------------------------------
-- Window rules:
-- Execute arbitrary actions and WindowSet manipulations when managing
-- a new window. You can use this to, for example, always float a
-- particular program, or have a client always appear on a particular
-- workspace.
--
-- To find the property name associated with a program, use
-- > xprop | grep WM_CLASS
-- and click on the client you're interested in.
--
-- To match on the WM_NAME, you can use 'title' in the same way that
-- 'className' and 'resource' are used below.
--
myManageHook = composeAll
[ className =? "MPlayer" --> doFloat
, className =? "Gimp" --> doFloat
, resource =? "desktop_window" --> doIgnore
, resource =? "kdesktop" --> doIgnore ]
------------------------------------------------------------------------
-- Event handling
-- * EwmhDesktops users should change this to ewmhDesktopsEventHook
--
-- Defines a custom handler function for X Events. The function should
-- return (All True) if the default handler is to be run afterwards. To
-- combine event hooks use mappend or mconcat from Data.Monoid.
--
myEventHook = mempty
------------------------------------------------------------------------
-- Status bars and logging
-- Perform an arbitrary action on each internal state change or X event.
-- See the 'XMonad.Hooks.DynamicLog' extension for examples.
--
myLogHook = return ()
------------------------------------------------------------------------
-- Startup hook
-- Perform an arbitrary action each time xmonad starts or is restarted
-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize
-- per-workspace layout choices.
--
-- By default, do nothing.
myStartupHook = do
spawnOnce "nitrogen --restore &"
spawnOnce "picom &"
spawnOnce "unclutter &"
spawnOnce "dunst &"
spawnOnce "setxkbmap us"
------------------------------------------------------------------------
-- Now run xmonad with all the defaults we set up.
-- Run xmonad with the settings you specify. No need to modify this.
--
main :: IO ()
main = do
xmproc0 <- spawnPipe "xmobar -x 0 /home/vylpes/.config/xmobar/xmobarrc0"
-- xmproc1 <- spawnPipe "xmobar -x 1 /home/vylpes/.config/xmobar/xmobarrc1"
xmonad $ docks $ defaults xmproc0
-- A structure containing your configuration settings, overriding
-- fields in the default config. Any you don't override, will
-- use the defaults defined in xmonad/XMonad/Config.hs
--
-- No need to modify this.
--
defaults xmproc0 = def {
-- simple stuff
terminal = myTerminal,
focusFollowsMouse = myFocusFollowsMouse,
clickJustFocuses = myClickJustFocuses,
borderWidth = myBorderWidth,
modMask = myModMask,
workspaces = myWorkspaces,
normalBorderColor = myNormalBorderColor,
focusedBorderColor = myFocusedBorderColor,
-- key bindings
keys = myKeys,
mouseBindings = myMouseBindings,
-- hooks, layouts
layoutHook = myLayout,
manageHook = ( isFullscreen --> doFullFloat ) <+> myManageHook <+> manageDocks,
handleEventHook = myEventHook,
-- logHook = myLogHook,
logHook = workspaceHistoryHook <+> myLogHook <+> dynamicLogWithPP xmobarPP
{ ppOutput = \x -> hPutStrLn xmproc0 x
, ppCurrent = xmobarColor "#98be65" "" . wrap "[" "]"
, ppVisible = xmobarColor "#98be65" ""
, ppHidden = xmobarColor "#82AAFF" "" . wrap "*" ""
, ppHiddenNoWindows = xmobarColor "#c792ea" ""
, ppTitle = xmobarColor "#b3afc2" "" . shorten 60
, ppSep = " | "
, ppUrgent = xmobarColor "#C45500" "" . wrap "!" "!"
, ppExtras = [windowCount]
, ppOrder = \(ws:l:t:ex) -> [ws,l]
},
startupHook = myStartupHook
}
-- | Finally, a copy of the default bindings in simple textual tabular format.
help :: String
help = unlines ["The default modifier key is 'alt'. Default keybindings:",
"",
"-- launching and killing programs",
"mod-Shift-Enter Launch xterminal",
"mod-p Launch dmenu",
"mod-Shift-p Launch gmrun",
"mod-Shift-c Close/kill the focused window",
"mod-Space Rotate through the available layout algorithms",
"mod-Shift-Space Reset the layouts on the current workSpace to default",
"mod-n Resize/refresh viewed windows to the correct size",
"",
"-- move focus up or down the window stack",
"mod-Tab Move focus to the next window",
"mod-Shift-Tab Move focus to the previous window",
"mod-j Move focus to the next window",
"mod-k Move focus to the previous window",
"mod-m Move focus to the master window",
"",
"-- modifying the window order",
"mod-Return Swap the focused window and the master window",
"mod-Shift-j Swap the focused window with the next window",
"mod-Shift-k Swap the focused window with the previous window",
"",
"-- resizing the master/slave ratio",
"mod-h Shrink the master area",
"mod-l Expand the master area",
"",
"-- floating layer support",
"mod-t Push window back into tiling; unfloat and re-tile it",
"",
"-- increase or decrease number of windows in the master area",
"mod-comma (mod-,) Increment the number of windows in the master area",
"mod-period (mod-.) Deincrement the number of windows in the master area",
"",
"-- quit, or restart",
"mod-Shift-q Quit xmonad",
"mod-q Restart xmonad",
"mod-[1..9] Switch to workSpace N",
"",
"-- Workspaces & screens",
"mod-Shift-[1..9] Move client to workspace N",
"mod-{w,e,r} Switch to physical/Xinerama screens 1, 2, or 3",
"mod-Shift-{w,e,r} Move client to screen 1, 2, or 3",
"",
"-- Mouse bindings: default actions bound to mouse events",
"mod-button1 Set the window to floating mode and move by dragging",
"mod-button2 Raise the window to the top of the stack",
"mod-button3 Set the window to floating mode and resize by dragging"]

7
home/vylpes/.xprofile Normal file
View file

@ -0,0 +1,7 @@
xrandr --output DP-4 --scale 0.75x0.75
dwmblocks &
dunst &
nitrogen --restore &
picom &
variety &